Witam.
Zrobiłem sobie układzik, który mierzy napięcie i wynik przesyła po RS'ie do kompa. Niestety po zaprogramowaniu nie działał on poprawnie, dlatego postanowiłem sprawdzić komunikację pomiędzy układem a komputerem. Program zmieniłem tak, że uP ciągle wysyła liczbę 15 a terminal powinien mi ją odebrać. Niestety tak się nie dzieje. Oto co dostaję 80 00 i tak w kółko. Transmisję w terminalu jak i w uP ustawiłem na 2400 baud. ATmega taktowana jest kwarcem 3,686400MHz.
Fuse bity ustawiłem tak:
Gdy zmienię baud na 1200 w samym terminalu to otrzymuję F8 00.
Może ktoś ma jakieś sugestie co może być nie tak?
Aha kod obsługi RS'a mam identyczny z datasheet'em. A kod odpowiedzialny za inicjalizację wygląda następująco:
Zrobiłem sobie układzik, który mierzy napięcie i wynik przesyła po RS'ie do kompa. Niestety po zaprogramowaniu nie działał on poprawnie, dlatego postanowiłem sprawdzić komunikację pomiędzy układem a komputerem. Program zmieniłem tak, że uP ciągle wysyła liczbę 15 a terminal powinien mi ją odebrać. Niestety tak się nie dzieje. Oto co dostaję 80 00 i tak w kółko. Transmisję w terminalu jak i w uP ustawiłem na 2400 baud. ATmega taktowana jest kwarcem 3,686400MHz.
Fuse bity ustawiłem tak:
Gdy zmienię baud na 1200 w samym terminalu to otrzymuję F8 00.
Może ktoś ma jakieś sugestie co może być nie tak?
Aha kod obsługi RS'a mam identyczny z datasheet'em. A kod odpowiedzialny za inicjalizację wygląda następująco:
void rs_init(long int baud)
{
UBRRH=(unsigned char)((F_CPU/(2*baud)-1)>>8);
UBRRL=(unsigned char)(F_CPU/(2*baud)-1);
UCSRB=(1<<RXEN) | (1<<TXEN);
UCSRC=(1<<URSEL) | (3<<UCSZ0);
}