- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 28 von 28

Thema: ASURO Programmieren?

  1. #21
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    Praxistest und DIY Projekte
    ir[0] == 'y'

    Überlege mal selbst was der Unterschied ist.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #22
    Benutzer Stammmitglied
    Registriert seit
    26.09.2008
    Ort
    Wien
    Alter
    38
    Beiträge
    94
    Ich hab mich jetzt mal an dem Beispiel versucht, allerdings mit einer switch statt zig ifs. als default (also wenn KEIN richtiges Zeichen ankommt) hab ich break,break gewählt, der Asuro soll also stehen bleiben.
    Ebenfalls setze ich am Ende eines jeden Durchlaufes die Variable auf einen fiktiven Wert.
    Und zu guter Letzt soll SerRead nur 5 Takte lang versuchen einen Wert zu empfangen.

    Resultat: Das Programm funktioniert nicht. Und zwar tut sich gar nichts.
    Wenn ich bei SerRead den Wert wieder auf 0 (also Endlos) setze fährt der Asuro zwar, bleibt aber nicht stehen wenn die Taste losgelassen wird, was auch logisch ist.
    Jemand ne Ahnung wo der Fehler liegt?

    Hier mein Code:
    Code:
    #include "asuro.h"
    
    void stopGo(void); //prototyp
    
    int main(void)
    {
    	Init();
    	
    	MotorSpeed(200,200);
    	unsigned char dir[] = "123"; //platz für die empf var
    	
    	while(1)
    	{
    		SerRead(dir, 1, 5);
    		
    		switch(dir[0])
    		{
    			case 'w': MotorDir(FWD,FWD);
    					    break;
    			case 's': MotorDir(RWD,RWD);
    					    break;
    			case 'a': MotorDir(BREAK,FWD);
    					    break;
    			case 'd': MotorDir(FWD,BREAK);
    			            break;
    			case 'm': stopGo();
    						break;
    			case 'q': MotorDir(RWD,FWD);
    						break;
    			case 'r': MotorDir(FWD,RWD);
    						break;
    			default: MotorDir(BREAK,BREAK);
    						break;
    		}
    		
    		dir[0] = '0';
    	}
    	
    	return 0;
    }
    
    void stopGo(void)
    {
    	static unsigned char x = '0';
    	if(x == '0')
    	{
    		MotorSpeed(0,0);
    		x = '1';
    	}
    	else
    	{
    		MotorSpeed(200,200);
    		x = '0';
    	}
    }
    Danke

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    27.09.2008
    Beiträge
    27
    ok die fernsteuerung funktioniert....

    jetzt hab ich aber ein problem beim flashen...:

    wenn asuro mit dem flashen fertig ist leuchtet die status led rot auf....(sie sollte doch eigentlich grün aufleuten...) und die backleds leuchten auch....

    wenn ich dann das selbe programm nochmal flashe dann leuchtet die status led grün....

    aber asuro flash sagt das das programm erfolgreich gflasht wurde...

    was stimt mit meinem asuro nicht???

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    26.09.2008
    Ort
    Wien
    Alter
    38
    Beiträge
    94
    Guten Abend,

    ich wollte den Thread nochmal hochholen, in der Hoffnung das sich jemand mein Programm am Ende von Seite 1 ansehen und mir den Fehler nennen kann?

    Bitte, warum bleibt mein Asuro nicht stehen?

    Vielen Dank!
    while (!asleep()) sheep++;
    RP6 und Asuro Befehlsübersicht

  5. #25
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Wenn SerRead() mit timeout kein Zeichen innerhalb der Timeauszeit empfängt wird ein großes 'T' zurückgegeben. Das könntest du ja prüfen und darauf reagieren.
    Code:
    		if (time > timeout) data[0] = 'T';
    (aus SerRead() in asuro.c)

    Dir ist schon klar das du deinem asuro bei Vollgas den Rückwärtsgang reinhaust? Das ist nach "Suche die Tischkante und bleibe dann stehen" und "Kollisionstaster: Mit Vollgas gegen die Wand" eine weitere sichere Methode den Kleinen kaputt zu kriegen.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #26
    Benutzer Stammmitglied
    Registriert seit
    26.09.2008
    Ort
    Wien
    Alter
    38
    Beiträge
    94
    Hallo,

    und Danke, das werde ich probieren!

    Danke auch für den Tipp mit dem Motor!
    Wie bei meiner Vorstellung gesagt, ich hab zwar Löten und Programmieren gelernt, aber mit Motoren und anderen mechanischen Bauteilen hatte ich wenig am Hut Werde es mir zu Herzen nehmen und die armen Motoren nicht so quälen.

    PS: So einen typischen "Suche die Tischkante und bleibe dann stehen" Fehler habe ich schon gemacht Resultat: Beide Achsen der rechten Seite waren ab (hab sie ja nur geklebt).
    Aus Fehlern lernt man.
    while (!asleep()) sheep++;
    RP6 und Asuro Befehlsübersicht

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    27.09.2008
    Beiträge
    27

    .

    gibt es eigentlich eine möglichkeit asuro graphisch zu programmieren??

  8. #28
    Benutzer Stammmitglied
    Registriert seit
    26.09.2008
    Ort
    Wien
    Alter
    38
    Beiträge
    94
    while (!asleep()) sheep++;
    RP6 und Asuro Befehlsübersicht

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress