summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Draxinger <Wolfgang.Draxinger@draxit.de>2013-12-23 17:38:57 +0100
committerWolfgang Draxinger <Wolfgang.Draxinger@draxit.de>2013-12-23 17:38:57 +0100
commit61bc6f183b985209841ac7c39b9684c2821482eb (patch)
tree866ac9efbe906d7d15ac31a6b88aeb55debc575b
parent72d6c50a2224f9d6d0d7f9bb516f9a8698b5a58d (diff)
downloadvgaedidinjector-61bc6f183b985209841ac7c39b9684c2821482eb.tar.gz
vgaedidinjector-61bc6f183b985209841ac7c39b9684c2821482eb.tar.bz2
next try for eeprom
-rw-r--r--edid_injector.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/edid_injector.c b/edid_injector.c
index a87fc56..bf99bb2 100644
--- a/edid_injector.c
+++ b/edid_injector.c
@@ -152,14 +152,17 @@ uint8_t edid_genChecksum(uint8_t *ediddata)
return 0xff - bytessum + 1;
}
-uint8_t edid_readFromDisplayToEEPROM(void)
+uint8_t edid_readFromDisplay(void)
{
uint8_t const offset[1] = {0x00};
uint8_t displayedid[EDID_BLOCK_LENGTH];
+ memset(displayedid, 0, sizeof(displayedid));
uint8_t error = 0;
uint8_t retry = 20;
while( retry-- ) {
+ error = 0;
+
TWI_MasterForceIdle(&twimDisplay);
delay_ms(1);
@@ -191,10 +194,14 @@ uint8_t edid_readFromDisplayToEEPROM(void)
break;
}
- if( !retry ) {
+ if( error ) {
return error;
}
+ if( edid_checkData(displayedid) ) {
+ return 3;
+ }
+
/* set EDID Extension Block count / flags to zero */
displayedid[126] = 0;
@@ -207,13 +214,19 @@ uint8_t edid_readFromDisplayToEEPROM(void)
return 0;
}
+uint8_t edid_readFromEEPROM(void)
+{
+ EEPROM_WaitForNVM(),
+ EEPROM_FlushBuffer();
+ EEPROM_DisableMapping();
+
+
+}
+
int main(void)
{
memset(edid_data, 0, sizeof(edid_data));
- PORTB.DIR = (1<<3);
- PORTE.DIR = (1<<2) | (1<<3);
-
edid_initHostTWI();
edid_initDisplayTWI();
@@ -232,7 +245,7 @@ int main(void)
* Since uC supply == display +5V supply we're waiting 20ms here.
*/
for(;;) {
- edid_readFromDisplayToEEPROM();
+ edid_readFromDisplay();
delay_ms(1000);
}
#endif