Sebastian Bialy
Guest
Sun Mar 16, 2008 7:35 pm
Witam!
Okazało mi się dzisiaj z nienacka że muszę podpiąć do ATmegi8 dodatkowy
UART. Mam wolne dwa liczniki, procek nie jets obciążony, prędkość nie ma
dużego znaczenia, spokojnie może być 2400 bodów. Piny nie są krytyczne,
zawsze resztę logiki mogę przesunąc na inne.
Czy ma ktoś gotowca lub może mi wskazać? Wiem, że jest nota Atmela dla
90S1200, ale 1200 to był jakiś bardzo dziwny CPU i nie wiem jak z
działaniem tego na Mega8...
Adam Dybkowski
Guest
Sun Mar 16, 2008 7:57 pm
Sebastian Bialy pisze:
Quote:
Okazało mi się dzisiaj z nienacka że muszę podpiąć do ATmegi8 dodatkowy
UART. Mam wolne dwa liczniki, procek nie jets obciążony, prędkość nie ma
dużego znaczenia, spokojnie może być 2400 bodów. Piny nie są krytyczne,
zawsze resztę logiki mogę przesunąc na inne.
Polecam software UART stąd:
http://www.mil.ufl.edu/~chrisarnold/components/microcontrollerBoard/AVR/avrlib/
Można przy okazji usprawnić w obsłudze przerwania ICP wyliczanie
kolejnego momentu przerwania właśnie na podstawie zawartości rejestru
ICP (zamiast TCNT).
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Sebastian Bialy
Guest
Sun Mar 16, 2008 8:12 pm
Adam Dybkowski wrote:
Quote:
Zpsuło im się pobieranie chyba.
Sebastian Bialy
Guest
Sun Mar 16, 2008 8:22 pm
Adam Dybkowski wrote:
Quote:
Ok, pobrałem. Dwie wady widzę:
a) GPL a nie LGPL co mi przeszkadza mocno :/
b) mocno intruzywna - np. wymaga własnego zarządzania systemem przerwań
przez specjalny wektor w RAM. Zamiast składać się z luźnych klocków jest
raczej monolitem.
Adam Dybkowski
Guest
Sun Mar 16, 2008 11:42 pm
Sebastian Bialy pisze:
Quote:
Tu jest także:
http://web.media.mit.edu/~gemma/files/avrlib.tar.bz2
Quote:
Ok, pobrałem. Dwie wady widzę:
a) GPL a nie LGPL co mi przeszkadza mocno :/
b) mocno intruzywna - np. wymaga własnego zarządzania systemem przerwań
przez specjalny wektor w RAM. Zamiast składać się z luźnych klocków jest
raczej monolitem.
Hm? Ja wyciągnąłem z tej biblioteki wyłącznie funkcje dot.
software'owego UARTu (uartsw.c - wersja korzystająca z przerwania ICP),
wyciąłem wszystkie bzdety mi niepotrzebne, zmieniłem sposób wywoływania
przerwań bez tej dziwacznej rejestracji programowej. A właściwie to z
tego wszystkiego zostały tylko kluczowe sprawy związane z
nadawaniem/odbieraniem bitów danych i wyliczaniem, kiedy to zrobić. Aha,
dorzuciłem także FIFO w RAMie w obu kierunkach bo początkowa
implementacja tego nie miała.
Jeżeli nie chcesz GPLa to po prostu przyjrzyj się dokładnie, jak to jest
wykonane, po czym od początku napisz sam. Algorytm nie jest opatentowany
ani chroniony. Jeżeli nie wykorzystasz oryginalnego kodu źródłowego to
będziesz w 100% legalny.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.