Odczyt pojedynczych bajtów zwykle się udaje. Problem z odczytem bajtów kolejno po sobie. Poniżej kod:
Zwykle udaje się odczytać klika bajtów, potem program zapętla się przy wysyłaniu warunków startu (procedura I2C_start()) dla kolejnego bajtu. Wygląda to tak, jakby szyna I2C była zajęta. Na linii SCL jest wówczas +5V, na SDA 0V. Mam zastosowane rezystory podciągające, WP dla 24LC16 dołączone do masy. Linie A1...A0 dołączone do masy, choć to nie istotne.
24LC16 odczytuję sekwencyjnie, odczyt wierszy jest mniej wygodny. Zapis jest raczej poprawny. Próbowałem też z kilkoma 24C08, ale jest identycznie.
Najciekawszym zjawiskiem jest jakieś dziwne powiązanie USART'u z TWI. Jeżeli odczytanych bajtów z 24LC16 nie wysyłam poprzez USART wszystko pracuje poprawnie. Przy stosowaniu USART jest jak wyżej. Jak to rozumieć ?
Żeby tak prosta sprawa sprawiała tyle problemu
...
Kod: C / C++
Zwykle udaje się odczytać klika bajtów, potem program zapętla się przy wysyłaniu warunków startu (procedura I2C_start()) dla kolejnego bajtu. Wygląda to tak, jakby szyna I2C była zajęta. Na linii SCL jest wówczas +5V, na SDA 0V. Mam zastosowane rezystory podciągające, WP dla 24LC16 dołączone do masy. Linie A1...A0 dołączone do masy, choć to nie istotne.
24LC16 odczytuję sekwencyjnie, odczyt wierszy jest mniej wygodny. Zapis jest raczej poprawny. Próbowałem też z kilkoma 24C08, ale jest identycznie.
Najciekawszym zjawiskiem jest jakieś dziwne powiązanie USART'u z TWI. Jeżeli odczytanych bajtów z 24LC16 nie wysyłam poprzez USART wszystko pracuje poprawnie. Przy stosowaniu USART jest jak wyżej. Jak to rozumieć ?
Żeby tak prosta sprawa sprawiała tyle problemu
