- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: ASURO bidirektionale IR Kommunikation Problem

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.141
    Blog-Einträge
    3

    ASURO bidirektionale IR Kommunikation Problem

    Anzeige

    Praxistest und DIY Projekte
    Hallo Miteinander,
    ich habe ein kleines Testprogramm für eine schnelle bidirektionale Kommunikation zwischen ASURO und PC geschrieben.
    Drückt man die Space-Taste im Terminalprogramm, liefert der ASURO bei jedem Dastendruck einen aufsteigenden Zählerwert zurück. Wird eine andere Taste gedrückt, schickt der Asuro das Zeichen 'E' für Error zurück.
    Beim Einschalten des Asuro meldet sich der Asuro mit
    -- ASURO Ready --
    Connection OK

    und jetzt das Problem:
    sendet man die Einschaltmeldungen 3 Mal hintereinander, hängt sich der ASURO auf. Ich habe alles probiert, aber jetzt fällt mir nichs mehr ein. Gibt es Probleme mit dem mitgelieferten Makefile ? Ich habe keine Idee mehr.

    Hier das Programm:

    Code:
    #include "asuro.h"
    typedef unsigned char byte; 
    
    /*******************************************************************************
    	Kommandos zur Ansteuerung der Test-LED
    *******************************************************************************/
    void toggle_led()	
    {
    	static byte k=0;
    	if (k==0)
    	{
    		StatusLED(GREEN);
    		k=1;
    	}
    	else
    	{
    		StatusLED(YELLOW);
    		k=0;
    	}
    			
    }
    void blink_led(byte n)
    {
    	int k;
    	do 
    	{
    		for (k=1;k<10000;k++);  /* Verz�erung */
    		toggle_led();
    	}while(n--);
    }
    
    void chputchar(byte zeichen)
    {
    	UCSRB = 0x08; // enable transmitter
    	UCSRA=UCSRA | TXC; // clear transmitter flag 
    	while (!(UCSRA & 0x20)); // wait for empty transmit buffer
    	UDR = zeichen;
    	while (!(UCSRA & 0x40));
    }
    
    byte receive()
    {
    	byte c;
    	/* Warten auf ein Zeichen von der seriellen Schnittstelle */
    //   	c=ser_getchar();
    	SerRead(&c, 1, 0);
    	toggle_led();
    	return c;
    }
    
    void send(byte zeichen)
    {
    	SerWrite(&zeichen,1);
    
    //	chputchar(zeichen);
    }
    
    #define TEST			0x20		/* Space als Testzeichen */
    
    unsigned int uiBuffer[10];
    
    int main(void)
    {
    	byte command,n;
    	byte temp=0,temp2,temp3;
    	
    	Init();
    	SerWrite("\n\r-- ASURO Ready --\n\r",21);
    	SerWrite("Connection OK\n\r",15);
    //	SerWrite("\n\r-- ASURO Ready --\n\r",21);
    //	SerWrite("Connection OK\n\r",15);
    //	SerWrite("\n\r-- ASURO Ready --\n\r",21);
    //	SerWrite("Connection OK\n\r",15);
    
    	while(1)
    	{
    	/* Warten auf ein Kommando der seriellen Schnittstelle */
    
    		command = receive();
    
    		switch(command)
    		{
            	case TEST:
            	{
    			/* 	sehr ntzliches Testkommando, sendet bei jedem 'Space' drcken 
    			einen um Eins erh�ten Wert */
            		send(n++);
            	}
    			break;
    
    			default:
    			{ 
    				StatusLED(RED);
    				send('E'); /* Falls kein bekanntes Kommando, 'E' fr Error senden */  			
    			}break;
    		}
    	}      
    
    return 0;
    }

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    67
    Beiträge
    531
    Hallo stochri

    Ich hab dein program ausprobiert, bei mir das gleiche problem.
    Dann hab ich die zeile
    SerRead(&c,1,0);
    erzatzt durch
    c=4;
    Und da gings gut.

    Wenn ich spater dein original program wieder compilierte lief dass AUCH OHNE PROBLEME!!! Vielleicht war die bestimmte Zeile nicht die Uhrsache.

    Jeztz zerbricht mir die Klumpe. (Hollandische Aussage...)

    Die Akku-spannung betragt 5.0V wenn ausgeschaltet und 4.5V wenn eingeschaltet.

    Die IR-empfanger functioniert nur ab 4.5V.

    Damit ist es vielleicht ein Akku problem aber ich bin mir nicht sicher denn bei mir sendete der Asuro am anfang nur eine vom 3 begrussungszeilen und dass senden sollte doch unabhangig vom IR-empfanger sein.

    Gruss,

    Henk (such mir ein anderen hobby...)

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.12.2004
    Ort
    München
    Alter
    50
    Beiträge
    198
    Hallo Storchi,

    dein ASURO ist einer von AREXX, also mit blauer Platine und nicht eine der limitierten Uralt-Versionen aus den School_Lab mit grüner Platine, oder?

    CU, Robin

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.12.2004
    Ort
    München
    Alter
    50
    Beiträge
    198
    Und nochmal:
    habe die Software inzwischen mal getestet. Klappt einwandfrei, auch mit 3x Statusmeldung schicken. Hab's aber nur unter Linux ausprobiert. Wie äußert sich das "Aufhängen" denn?

    CU, Robin

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.141
    Blog-Einträge
    3
    Hallo Arexx Henk, hallo Archi,
    vielen Dank für eure Kommentare.


    Mein Asuro Platine ist Blau. Heute habe ich die beiden Programmversionen noch einmal geflasht.
    Nach dem ersten Flashen mit der Version 1 kam die Begrüßungsmeldung der Asuro ist aber ca. sekündlich in einen Reset gefallen und hat die Begrüßungsmeldung dann wieder geschickt.
    Danach habe ich genau die selbe Version noch einmal geflasht und sie hat einwandfrei funtktioniert.
    Dann habe ich die Version 2 geflasht und sie hat im Gegensatz zu gestern auch einwandfrei funktioniert.
    Ich habe meine Batteriespannung überprüft ( NiMh Accus, Fabrikat Emmerich 700mAh ) 5.11 Volt im Leerlauf, 5.08 V bei laufendem Programm. Dann habe ich den Akkujumper abgezogen, die ASURO Spannung ist dann auf 4.35 V das Programm hat aber immer noch einwandfrei funktoniert.

    Hier meine Thesen:

    - Das ASURO System besitzt eine eingebaute Sperre für überarbeitete Bastler, wenn man sich länger als 4 Stunden damit beschäftigt geht das Flashen nicht merhr
    - wird der Flash-Speicher innerhalb von 1 Stunde 10 mal reprogrammiert, brauch er einen Tag Erholung
    - Die Fehlerkorrektur der IR-Datenübertragung für die Flash-Daten arbeitet nicht zuverlässig und der ASURO merkt nicht, wenn er falsche Daten programmiert.
    - Der Bastler arbeitet nach 4 Stunden selber nicht mehr zuverlässig und macht Fehler, die er selbst nicht merkt.


    Beste Grüße,
    Stochri

    zur Nomenklatur:
    Version 1: Ausgabe der Begrüßungmeldung einmal
    Version 2: Ausgabe der Begrüßungsmeldung dreimal

    By the way: Kennt sich von euch jemand mit dem AVR-Simulator aus ?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Zitat Zitat von stochri
    Hier meine Thesen:

    - Das ASURO System besitzt eine eingebaute Sperre für überarbeitete Bastler, wenn man sich länger als 4 Stunden damit beschäftigt geht das Flashen nicht merhr
    - [....]
    das ist mir auch schon aufgefallen, nach stundenlangem flashen ohne probleme, anfangs fast keine c und t's, machts anscheinend irgendwo click (evtl. auch nur virtuell) und das flashen geht nicht mehr, es hilft nur den ASURO stromlos (Batterie raus) in die Ecke zu stellen, und auch das IR-modul vom PC abzustecken, nach 'ner Stunde, früher hab ich's noch nicht probiert, gehts dann wieder

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Hallo,

    Kennt sich von euch jemand mit dem AVR-Simulator aus ?
    Welchen Simulator meinst du?

    AVR-Studio für Windows, oder avr_simulator für Linux?

    Das erste ist gut (wobei ich es nicht so oft benutze, weil ich kein Win hab) und das zweite ist zum abwinken, der Entwickler hat wohl kein Bock mehr drauf, schade

    Gruß Sebastian

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.141
    Blog-Einträge
    3
    Hallo linux_80,
    sehr interessant, dass Du ähnlicher Erfahrungen gemacht hast. Allerdings hätte ich da die Frage, ob sich nur die c's und die t's häufen, oder ob der Programmiervorgang am Schluss als erfolgereich abgeschlossen angezeigt wird und das Programm dann ein seltsames Verhalten an den Tag legt.
    Das würde nämlich darauf hindeuten, dass die Fehlererkennung der Programmübertragung unzuverlässig arbeitet.

    Gruss,
    Stochri

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.141
    Blog-Einträge
    3
    Hallo Izaseba,
    unter Windows habe ich den Gnu-Simulator beschrieben wie in
    http://<a href="https://www.robotern...s geht ?<br />

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    @stochri,
    bei mir hats dann immer ganz abgebrochen, den Fall, dass das flashen durchgelaufen ist, und trotzdem nicht ging hatte ich noch nicht.

    Ich hatte da mal ein Progamm gebraten das laut Flash ca. 50 Seiten hatte, nach den paar Stunden fings dann etwa ab Seite 26 an mit c und t's bei ca. 28 wars dann vorbei.
    Ich hab ja auch noch den USB-adapter, damit gings da dann auch nicht.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress