Zrobiłem płytkę do sterownika domowego na której znajdują się dwa procki: atmega128(procesor główny) i atmega32(procesor muzyczny). Konieczna jest w tym przypadku komunikacja tych procesorów w obu kierunkach przez uart.
Całą noc zajęło mi napisanie programu do takiej właśnie komunikacji i w rezultacie mam coś takiego:
At128-
At32-
W założeniach miało to działać tak że at128 wysyła zmienną o wartości 1 do at32, która po odebraniu tego sygnału wysyła sygnał powrotny w postaci zmiennej o wartości 222. At128 po odebraniu zmiennej zwrotnej wyświetla ją na lcd. Taki prosty test komunikacji w obie strony.
Program działa ale nie do końca dobrze ponieważ na lcd zamiast pojawić się wartości odebranej (222) pojawia sie w 1 sek odcinkach czasu najpierw 1(wartość zmiennej którą wysyłam na początku) potem pojawia się 22 i na końcu dopiero 222 która się już nie zmienia. Próbowałem do programu wstawić coś takiego jak "clear serialin" oraz próbowałem z programowym uartem ale efekt jeszcze gorszy.
Proszę o pomoc w udoskonaleniu programu aby od razu odczytywał dokładne wartości zmiennych.
Całą noc zajęło mi napisanie programu do takiej właśnie komunikacji i w rezultacie mam coś takiego:
At128-
Kod: text
At32-
Kod: text
W założeniach miało to działać tak że at128 wysyła zmienną o wartości 1 do at32, która po odebraniu tego sygnału wysyła sygnał powrotny w postaci zmiennej o wartości 222. At128 po odebraniu zmiennej zwrotnej wyświetla ją na lcd. Taki prosty test komunikacji w obie strony.
Program działa ale nie do końca dobrze ponieważ na lcd zamiast pojawić się wartości odebranej (222) pojawia sie w 1 sek odcinkach czasu najpierw 1(wartość zmiennej którą wysyłam na początku) potem pojawia się 22 i na końcu dopiero 222 która się już nie zmienia. Próbowałem do programu wstawić coś takiego jak "clear serialin" oraz próbowałem z programowym uartem ale efekt jeszcze gorszy.
Proszę o pomoc w udoskonaleniu programu aby od razu odczytywał dokładne wartości zmiennych.