- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 5 von 5

Thema: HELP. Sichere verbindung über RS232

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.05.2005
    Beiträge
    8

    HELP. Sichere verbindung über RS232

    Anzeige

    Praxistest und DIY Projekte
    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.

    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)
    	
    	}
    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.

    Dank voraus.

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Die function gets(data,9) wartet offenbar, bis sie neun Zeichen beisammen hat, egal, wie lange das dauert. Du muß immer prüfen, OB überhaupt was kommt.
    Du kannst vorher einen Timer aufsetzen, der z.B. nach 10 Sekunden "feuer" schreit.
    Wenn du aber schon vorher deine Zeichen beisammen hast, disablest du den Timer, bevor er auslöst. (also dann, wenn du aus den "do" Schleifen wieder draussen bist)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.05.2005
    Beiträge
    8
    Hallo PicNick,
    Wie muss es in C-Programm aussehen. Was muss ich für Timer auf- und absetzen. Entschuldigung für meine Kenntnisse.

    mfg Eugen

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Da kann ich dir nur empfehlen, diese Programm mal beiseite zu legen und irgendein Beispielprogramm mit Timer (LED-Blinken oder so) auszuprobieren, da siehst du, wie das geht.
    Auch im Download-Bereich hier könnte was zu finden sein.
    Timer-Interrupts sind was ganz Elementares, das mußt du Dir einverleiben.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    Zu den Timer-Gschichtn gibts ne ganz gute Appnote von Atmel
    AVR130: Setup and use the AVR Timers

    http://www.atmel.com/dyn/resources/p...ts/DOC2505.PDF

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress