ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
335717 Топик полностью
Гудвин, волшебник (17.06.2012 22:12, просмотров: 169) ответил Гудвин на В общем, заюзал драйвер от NXP... С фреймбуфером вполне удовлетворительно получается. Смотрел на всяческие emWin-ы - лишнее. Весь пар в свисток... Прикрутил к TIC154A, слегка подправив, уже юзанную когда то мной библиотеку от nokia 3310.
Но вот работа с eeprom все-равно через жопу... В отличие, например от вот этого:  void erase_chip(void) { unsigned char i; unsigned int pg; unsigned int adr; adr=0; for(pg=0;pg<512;pg++) { #asm("wdr"); /////////////////// i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(adr>>8); i2c_write(adr); for (i=0;i<64;i++) {i2c_write(0);adr++;} //для 24с256 // for (i=0;i<128;i++) {i2c_write(0);adr++;} //для 24с512 i2c_stop(); /* 10ms delay to complete the write operation */ delay_ms(10); } } void page_read(char *str, unsigned int adr ) { char i; adr=adr*32; // 32 байт в записи i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(adr>>8); i2c_write(adr); i2c_start(); i2c_write(EEPROM_BUS_ADDRESS | 1); for (i=0;i<31;i++) { *(str++)=i2c_read(1);} // ACK *(str)=i2c_read(0); // последний байт NO ACK i2c_stop(); } void page_write(char *str,unsigned int adr) { char i; adr=adr*32; // 32 байт в записи i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(adr>>8); i2c_write(adr); for (i=0;i<32;i++) {i2c_write(*(str++)); } i2c_stop(); /* 10ms delay to complete the write operation */ delay_ms(10); }