Další poznatek: když odpojím svoje zařízení a na MAXovi propojim Tin s Rout, tak se znak vrací v pohodě, takže chyba je někde v softwaru či zařízení...
Příspěvky odeslané z IP adresy 90.176.230.–
Tx a Rx by mělo být ok, po inicializaci Tx nahodí log 1
ve fuses mam jako zdroj hodin nastavenej krystal a jsem si jistej že to z něj běží
mam tam MAX3232, protože mam napájení 3,3V, když mu přivedu log 1 na Tin tak na Tout je -12V, takže to je snad taky ok
dam periodicky třeba putchar('c'); tak na hyperterminálu ani ťuk. Nemůže bejt chyba někde v hyperterminálu?
Dík za odpověď, ale mohl by jsi to upřesnit?
Podle datasheetu se asynch/synch nastavuje bitem UMSEL registru UCSRC a ten mam v nule, takže by to mělo být ok..
Navíc když si prohlížim datasheety megy8 a megy16 tak rozdíly v registrech USARTu nevidim
Zdravim, poradil by mi někdo jestli je v následujícím kódu chyba, nebo je někde po ceste do PC, či v nastavení hyperterminálu? Nedaří se mi přijmout znak...
Hyperterminál nastavuji rychlost 9600, 8 bitů dat, 1 stop bit, bez parity, řízení toku žádné, díky.
#include <avr/io.h>
#include <stdlib.h>
#include <util/delay.h>
#include <stdio.h>
int main(void) {
char znak;
/***** inicializace uart *****/
UCSRA|=0x00;
UBRRH|=0x00; // nastaveni rychlosti pro krystal 8MHz
UBRRL|=0x33;
UCSRB|=0x18; // povolit vysilani a prijem
UCSRC|=0x86; // ramec dat: 8 datovych, 1 stop bit, bez parity
while(1) {
znak=getchar();
putchar(znak);
};
}