Witam Chciałbym sterować modemem GSM za pomocą ATmega8 lub wyższym w związku z czym po głowie chodzi mi taka koncepcja działania. Czy ide dobrą drogą?
Kod:
RESET: ; ustawienie początku stosu ; ustawienie prędkości transmisji ; inne ustawienia początkowe, przerwania itp Loop1: ; Tu realizacja głównych zadań czyli wysyłanie poleceń do modemu, odbieranie...
rjmp Loop1
USART_RXC: ; przerwanie gdy odebrano kompletny znak rcall RxAnal ; czy znak w ASCII=10 to koniec lini i analizuj to co w buforze (1) ; zapisz znak do bufora ; zwieksz index bufora dla ewentualnego zapisu kolejnego znaku reti
RxAnal: ; analiza tego co przyszlo z modemu do znaku końca linii (2) ret
USART_TXC: ; skopiowanie znaku z RAM do USART Register Description ;obsługa danej która będzie za każdym razem przy wywołaniu tego przerwania zmniejszała ; się jeden aby wskazywać kolejny znak do wysłania i tak do osiągnięcia wartości 0 ; i jak osiagnie 0 to wyłączamy zezwolenia na przerwanie od "transmisji kompletnej" reti
SendCmd: ; wysyłanie polecenia do modemu ; zapisanie w RAM kompletnego polecenia do wysłania ; sprawdzenie ile znaków do wysłania i zapis tej liczby do ram ; wysłanie znaku ENTER do modemu ; zezwolenie na przerwanie od zdarzenia "transmisja kompletna" ret
(1) czy modem po odpowiedzi wysyła znak końca linii czy również powrotu karetki? (2) Mam na razie jedną koncepcję polegającą na porównywaniu tego co dostałem z wzorcami, tylko to dość czasochłonne i zawodne wg mnie ;(