Hallo,
ich habe eine Problem.
Ih benutze AVR Mega32 und zum programieren CodeVisionAVR.
In meinem Programm soll µC und Sensor(dazwiechen ADA-Modul) über RS232 unterhalten.
Eigentlich klapt es prima, aber wenn es keine Verbindung zwieschen beiden stellt, hängt meine Programm. Ich möchte in Programm realisieren, wenn es kein Antwrot von Sensor kommt, muss eine Fehlermeldung auf LCD ausgegeben werden.
Ich habe schon was gelesen, dass ich mit Interrupt was machen kann, aber wie, habe ich keine Ahnung(ich bin noch Anfänger). Oder giebt es andere Möglichkeit.Code:void GetDataAdam (char *sensor, char *data) //Variablen "sensor" und "data" werden übergeben { int probe1, probe2; // Definition integer-Variable do { do { PORTD.2=1; // LTC485 wird angeschaltet PORTD.5=1; // LTC485 auf "Senden" schalten delay_ms(100); // kurz warten... printf("%s",sensor); // Abfrage Senden, ADAM Eingang x Adresse 0xHEX //("#01x<CR>")(x steht für Sensornummer) delay_ms(3); // kurz warten... PORTD.5=0; // LTC485 auf "Empfangen" schalten gets(data,9); // Daten vom seriellen Port in Variable Datax //kopieren (>+00.000<CR>") --> maximal 9 Zeichen PORTD.2=0; // LTC485 wird abgeschaltet probe1=(data[2]-0x30); // zweite Zahl vor den Komma der Sensordaten ablesen probe2=(data[3]-0x30); // erste Zahl vor den Komma der Sensordaten ablesen } while( probe1!=0 && probe1!=1 ); //Überprüfen ob die Daten von Solarsensor richtig abgelesen wurde(zweite Zahl vor den Komma) } while(probe2>=9 && probe2<=0 ); //Überprüfen ob die Daten von Solarsensor richtig abgelesen wurde(erste Zahl vor den Komma) }
Dank voraus.







Zitieren

Lesezeichen