[bascom] Komunikacja pomiędzy kilkoma mikrokontrolerami

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
keruseykaryu

Post autor: keruseykaryu » 14 wrz 2011, 5:31

Pikczu pisze:Tak mysle nad tym softem bo przetestować nie mam jak jak już tak bardzo chcesz zatrzymać te pętle do loop do daj chociaż loop untill i warunek spełniający.
Ale nie wiem jak wtedy ze stosem może niech się ktoś bardziej doświadczony wypowie bo moja wiedza o stosie jest mała.
Petle do loop nie mają nic wspólnego ze stosem. Gorzej jakby było jakieś nie wyreturnowane gosub, albo co gorsza goto gdzieś z gosub.
Do loop i exit do to normalna praktyka. No fajnie by było jakby zawsze było kawa na ławę i loop until. Ale czasem exit do jest lepszym wyjściem bo skraca program dodając nutkę nieczytelności. Coś za coś.
LemuRR 11 pisze:Ale nie rozumiem dokładnie czego mógłbym użyć zamiast pętli do loop (chodzi tutaj o pętle w ustawianiu ?)
Do loop to nie jedyna pętelka. Jeszcze jest while wend. Różnica jest prosta: do loop wejdzie i przejdzie, a warunek jak jest until to się sprawdza na koniec, while wend jak warunkek nie spełniony to do pętli nie wejdzie.
Nic nie szkodzi by w programie było i 100 pętli. Ale trzeba zawsze pamiętać by program miał powrót do pętli "głównej".

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 15 wrz 2011, 9:07

Jeżeli to ma być prawdziwa prosta sieć na RS232, to najlepiej byłoby wykorzystać, model Tocen Ring, ale wtedy należało by się pokusić o napisanie prostego RTOSa na AVRy w takiej sieci.
Tylko wtedy obsługa RS232 najlepiej na przerwaniach z jaką kolejką FIFO, tak z 8 do 16 bajtów.

LemuRR 11
-
Posty: 9
Rejestracja: 11 wrz 2011, 12:15
Lokalizacja: Kraków
Kontakt:

Post autor: LemuRR 11 » 15 wrz 2011, 16:38

Jeszcze mam takie pytanie, czy oscylator wewnętrzny układu jest niedokładny ?
Czy odbiornik i nadajnik musi mieć identyczną częstotliwość (taktowanie, np 4mhz) ?
Jaki wpływ ma częstotliwość na błędy w transmisji ?

Za wszystkie dotychczasowe porady, i zainteresowanie tematem, wielkie dzięki !

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 15 wrz 2011, 18:14

Najlepiej jak byś użył zewnętrznego bo wewnętrzny jest nie dokładny zwłaszcza nie jest dobry do uart-a.
Ad2. nie mam znaczenia jeśli baudrate jest ten sam.
Osobiście zrobił bym na takich samych taktowaniach.

keruseykaryu

Post autor: keruseykaryu » 15 wrz 2011, 20:17

Jeszcze mam takie pytanie, czy oscylator wewnętrzny układu jest niedokładny ?
Jest. Ale jak ci zależy to go skalibruj. U Atmela znajdziesz jak.
Jaki wpływ ma częstotliwość na błędy w transmisji ?
W notach jest taka tabelka. Tam popatrz.
Pikczu pisze:Najlepiej jak byś użył zewnętrznego bo wewnętrzny jest nie dokładny zwłaszcza nie jest dobry do uart-a.
Zależy jak patrzeć. Jak chce szybkie transmisje to tak, ale jak chce niskie to nie ma się co przejmować.

LemuRR 11
-
Posty: 9
Rejestracja: 11 wrz 2011, 12:15
Lokalizacja: Kraków
Kontakt:

Post autor: LemuRR 11 » 21 wrz 2011, 17:30

Nie bardzo mi wyszło.. pokazuje cały czas 165165165:
Czy ma znaczenie czy SDA i SCL podłączę (w przypadku mega8 PC5 i PC4) czy mogę skonfigurować to na inne piny ?
Czy LCD musi być podłączony do jednego portu ?

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 21 wrz 2011, 17:35

Czy ma znaczenie czy SDA i SCL podłączę (w przypadku mega8 PC5 i PC4) czy mogę skonfigurować to na inne piny ?
Nie bardzo wiem co do USART mają linie interfejsu I2C, no chyba że chcesz robić sieć na nim.
Ogólnie nie bardzo rozumiem pytanie, po co ci te linie są potrzebne :?:
Czy LCD musi być podłączony do jednego portu ?
NIE, nie ma takiego wymogu, to tylko kwesta czy umiesz sobie oprogramować inny konfig.
W BASCOM jest do tego chyba Config LCDPIN.

LemuRR 11
-
Posty: 9
Rejestracja: 11 wrz 2011, 12:15
Lokalizacja: Kraków
Kontakt:

Post autor: LemuRR 11 » 21 wrz 2011, 18:33

I2C potrzebne mi jest do komunikacji z pcf8583. W dataschecie atmega8 jako SDA opisany jest PC4, a jako SCL PC5. Mój problem polega na tym że z praktycznych powodów gorzej mi jest umościć PCF w tym oto miejscu. Czy mogę ustawić inne piny mikrokontrolera jako SDA i SCL za pomocą Config SDA i Config SCL ?
Jeszcze pytanie i innej beczki, do czego służy PCF8583 pin AO (3 noga układu) Bo zauważyłem że w niektórych schematach podłączone jest do VCC a gdzie indziej do GND.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 21 wrz 2011, 18:38

Możesz wykorzystać dowolne piny do SDA/SCL, ale wtedy stracisz sprzętowy I2C. Co do nóżki A0, to wybór adresu wywołania Układu PCf na magistrali I2C.

ODPOWIEDZ