-
Data: 2012-12-15 20:04:14
Temat: Re: Brak komunikacji między Atmegą a modułem GSM po rs232
Od: Marek <f...@f...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Sat, 15 Dec 2012 18:07:13 +0100, Atlantis <m...@w...pl>
wrote:
> Niezależnie od tego stan wysoki na liniach rs232 wynosi 5V. W tej
chwili
Pisząc rs232 nasz na myśli usart mcu? Używasz jakieś przejściówki
usart<->rs232 czy usart<->usb w przypadku łączenia się z pc?
> Będę wtedy chyba potrzebował jakiegoś level shiftera?
jeśli atmega nie może na 3.3v, to owszem albo level shifter ale można
też obniżyć dzielnikami a podciagnac dioda + rez. osobiście używałem
ten drugi sposób z powodzeniem.
> Krótko rzecz ujmując używam dwóch tablic: rx_buffer[] i
last_line[]. Do
ja jestem zwolennikiem buforu odbiorczego typu ring, które wypełnia
przerwanie po odbiorze znaku + funkcje odczytu zawartosci bufora.
Algorytm to m.in. dwie funkcje (w psedokodzie):
wyslij("at&f\r\n");
czekajna("OK\r\n", 1000);
Pierwsza wysyła string polecenia, druga odczytuje bufor (nie będę
wnikał w obsługę bufora, sloty itp. ) czekając aż się pojawi
oczekiwany string w określonym czasie (timeout w ms), jeśli się nie
pojawi to funkcją zwraca błąd, który możemy obsłużyć. Bufor ring
bardzo ładnie jest opisany wraz z przykładami w nocie an2120 dla
m68hc08, polecam. Oczywiście ważne jest aby do funkcji oczekującej
podawać "cały koniec" oczekiwanego stringu (wraz z "\r\n") aby nie
doprowadzić do zbyt wczesnego nadania kolejnego polecenia.
> BTW jeszcze pytanie natury formalnej. Jak inteligentny jest
kompilator w
> zakresie makrodefinicji zastępujących wartości liczbowe? Jeśli np.
dam:
> #define WARTOSC 31
> a potem w programie dam:
> if (zmienna < (WARTOSC-1))
> To w którym momencie zostanie obliczona wartość? Podczas
kompilacji, czy
> też za każdym razem uC będzie sobie musiał odejmować jedynkę? ;)
Nie powinien przy włączonej optymalizacji (to się chyba nazywa
constant folding), po prostu sprawdzi czy,zmienna<30. Ale to zalezy
od kompilatora i włączonego poziomu optymalizacji.
--
Marek
Następne wpisy z tego wątku
- 15.12.12 20:37 Atlantis
- 15.12.12 22:17 Marek
- 16.12.12 02:33 Adam Wysocki
- 16.12.12 15:01 Atlantis
- 19.12.12 10:42 Atlantis
- 19.12.12 10:50 Atlantis
- 23.12.12 15:42 Atlantis
- 23.12.12 23:45 Marek
- 23.12.12 23:50 Marek
- 24.12.12 11:39 J.F.
- 24.12.12 16:41 Marek
- 26.12.12 11:24 Atlantis
- 09.01.13 20:16 Atlantis
- 09.01.13 23:45 Grzegorz Niemirowski
- 10.01.13 19:02 Atlantis
Najnowsze wątki z tej grupy
- "Wybitna" inteligencja AI
- test stereo
- Bluetooth stereo
- W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- Weryfikacja myjki ultradźwiękowej
- zasieg radaru
- Zmywarka Bosch SRV55T43EU - awaria
- Kod zniżkowy w TME do 26.09.2025
- SFP, 10G, simplex sc/apc
- [słabe wiatry powodują - przyp. JMJ] Energetyczny paraliż w Niemczech
- NxtPaper
- Programiści nie przestają zadziwiać świat
- Długi kabel zasilający a na końcu procek
- Dlaczego nam nie idzie
- Co czujnik to inna temperatura
Najnowsze wątki
- 2025-09-24 "Wybitna" inteligencja AI
- 2025-09-24 test stereo
- 2025-09-24 Bluetooth stereo
- 2025-09-24 Rzeszów => International Freight Forwarder <=
- 2025-09-24 Gdańsk => Delphi Programmer <=
- 2025-09-24 Warszawa => BI Developer / Analityk BI <=
- 2025-09-24 Alior zmiana logowania
- 2025-09-24 Warszawa => Senior Microsoft Dynamics 365 Business Central Consultant
- 2025-09-24 Andżelika Borys odwiedziła [WIELKIEGO PATRIOTĘ - przyp. JMJ] Andrzeja Poczobuta w [białoruskiej - przyp. JMJ] kolonii karnej
- 2025-09-24 W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- 2025-09-24 W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- 2025-09-24 W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- 2025-09-24 W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- 2025-09-23 Re: Kolory już są
- 2025-09-23 paragony grozy