- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 55

Thema: ASURO neuling (noob) hat mal Programiert

  1. #21
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    Anzeige

    Praxistest und DIY Projekte
    ich revidier meine aussage, er rennt NICHT ins return ... editier bitte den text, da kann man sich nur verlesen!!! sieht ja grauenhaft aus

    im prinzip musst du ncihts weiter machen, als pausen einzubauen ...

    wenn der text vernünftig eingerückt ist (nach jeder geöffneten geshweiften klammer den text um ein tab nach rechts verschieben, nach jeder gerschlossenen wieder ein tab nach links) erkennst du die einzelnen abschnitte, in jedem abschnitt bestimmst du die fahrrichtung für beide motoren und die geschwindigkeit, wenn du dir jetzt immer die fahrrichtung vorstellst, erkennst was er in welchem block macht und musst nurnoch entsprechend pausen dazwischen machen ... ausserdem muss die geschlossene geschweifte klammer direkt nach dem " else " vor das "return 0;" verschoben werden

  2. #22
    Benutzer Stammmitglied
    Registriert seit
    25.05.2009
    Ort
    Cleebronn
    Alter
    31
    Beiträge
    80
    und wie mach ich das mit den Pausen.
    Noch ne frage wo her weis der ASuro wie lange er etwas machen soll, da gibs doch sicherlich ein befehl oder??

    Gruß Jonas Weber

    Ps. ich werde es editieren

  3. #23
    Benutzer Stammmitglied
    Registriert seit
    25.05.2009
    Ort
    Cleebronn
    Alter
    31
    Beiträge
    80
    Zitat Zitat von cele93
    und wie mach ich das mit den Pausen.
    Noch ne frage wo her weis der ASuro wie lange er etwas machen soll, da gibs doch sicherlich ein befehl oder??

    Gruß Jonas Weber

    Ps. ich werde es editieren

    /edit: bekomm das mit dem editieren nicht hin. hab deshalb ein scrennshot gemacht, wo es besser aussieht:

    http://imagesup.de/picture.php?code=...orcnc42axfjnp4

  4. #24
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    öhm ne pause einzubauen gibt es viel möglichkeiten, leider hab cih mich zu lang mit dem asuro net beschäftigt als das ich das jetzt wüsste, ich würd mal in der anleitung schauen an deiner stelle, vielleicht kann dir da wer anders kurz aushelfen

    wie gesagt, die geschweifte klammen nach dem else, nach dem StatusLED(RED) muss hinter die eingeschobenen blöcke ! damit die blöcke im else zweig ausgeführt werden und nciht permanent
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken wtf.jpg  

  5. #25
    Benutzer Stammmitglied
    Registriert seit
    25.05.2009
    Ort
    Cleebronn
    Alter
    31
    Beiträge
    80
    edit hab ich schon gefunden plus rutsch das immer nach links. kp warum.
    hinter welche blöcke das vertsh ich noch nicht so richtig.

    Gruß Jonas Weber

    ps. wie fehlenden wiederstände sind soeben bei mir eingetroffen. ich werde ihn dann mal voll fertig machen.

    ach noch ne frage: kann man de halben tischtennisball auch mit sekundenkleber anbringen??

  6. #26
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Noch ne frage wo her weis der ASuro wie lange er etwas machen soll, da gibs doch sicherlich ein befehl oder??
    Den Funktion:

    Sleep(anzahl_von_72kHz_perioden);

    steht auch im anleitung beschrieben unter 9.2.5. Den Anzahl von 72KHz Perioden darf leider nicht großer sein als 255. Und das ist gleich wie 3.5 milisekunden. Fur ein langere warte Zeit muß man diesen Sleep komando wiederholen in einer for-schleife. (9.1.5 in dem anleitung)

  7. #27
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    sekundenkleber eignet sich nicht, das ist ein kontaktkleber! also möglichst fläche auf fläche, da du nur kante auf fläche klebst, sollte es schon heißkleber oder so universalbkleber sein

  8. #28
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Den Tischtennisball am platine kleben wurde ich auch nicht empfehlen. Ich habe ein 25mm lange M3 bolze an dem halbe Tischtennisball geklebt mit heizkleber und dan mit muttern in das loch hinter dem Atmega8 montiert. Das geht perfekt und ist leicht demontierbar. Aber den heizklebberei in den Tischtennisball habe ich seit einiger monate nochmahls versterken mussen mit sekundenkleber. Das wird nun sicher fest bleiben.

  9. #29
    Benutzer Stammmitglied
    Registriert seit
    17.05.2009
    Beiträge
    46
    Ich habe nun auch ein erstes Programm geschrieben, jedoch habe ich eine Frage zur doppelten Abfrage der PollSwitch Funktion. Kann ich dies mit || ,, && oder ++ bewältigen?
    Mein Problem die Störgeräusche der Asuro Motoren.

    Hier noch das Programm:

    Code:
    #include "asuro.h"
    
    
    //Tasten
    
    #define K6		PollSwitch()==1		//Taste 6
    #define K5		PollSwitch()==2		//Taste 5
    #define K4		PollSwitch()==4		//Taste	4
    #define K3		PollSwitch()==8		//Taste 3
    #define K2		PollSwitch()==16	//Taste 2
    #define K1		PollSwitch()==32	//Taste 1
    
    
    //Tasten Kombinationen
    
    #define K65		PollSwitch()==3		//Taste 6+5
    #define K54		PollSwitch()==6		//Taste 5+4
    #define K43		PollSwitch()==12	//Taste 4+3
    #define K32		PollSwitch()==24	//Taste 3+2
    #define K21		PollSwitch()==48	//Taste 2+1
    #define K52		PollSwitch()==18	//Taste 5+2
    
    #define K5432	PollSwitch()==30	//Taste 5+4+3+2
    
    
    
    //Warten
    
    #define WAIT1 for (i=0; i<1000; i++) {Sleep(72);}	//1 Sekunde
    
    #define WAIT2 for (i=0; i<400; i++) {Sleep(72);}	//0.5 Sekunde
    
    
    
    //Fahrten
    
    #define VORWERTS	StatusLED(GREEN); BackLED(ON,ON); MotorDir(FWD,FWD); MotorSpeed(124,120);
    
    #define LINKS 		StatusLED(YELLOW); BackLED(OFF,ON); MotorDir(RWD,RWD); MotorSpeed(124,120); WAIT1; MotorDir (FWD,RWD); WAIT2; MotorSpeed(0,0); WAIT1;
    
    #define RECHTS		StatusLED(RED); BackLED(ON,OFF); MotorDir(RWD,RWD); MotorSpeed(124,120); WAIT1; MotorDir (RWD,FWD); WAIT2; MotorSpeed(0,0); WAIT1;
    
    
    
    
    
    int main(void)
    {
    
    	unsigned int i;
    
    	Init();
    	
    	StatusLED(GREEN);
    	BackLED(ON,ON);
    	MotorDir(FWD,FWD);
    	MotorSpeed(124,120);
    	
    	while (1) {
    	
    	if 		 (K6)
    		{RECHTS}
    	
    	else if (K5)
    		{RECHTS}
    		
    	else if (K4)
    		{RECHTS}
    	
    	else if (K3)
    		{LINKS}
    	
    	else if (K2)
    		{LINKS}
    	
    	else if (K1)
    		{LINKS}
    	
    	else {VORWERTS}
    	}
    }

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

    Ich hoffe du verlierst nicht den Überblick bei den vielen #defines ;)

    Auf den ersten Blick scheint if (k6 && k6)... eine Lösung für die Mehrfachabfrage zu sein. Bei genauerer Betrachtung erkennt man aber, dass dies wohl eine Sackgasse ist. Durch die if..else..else-Schachtelung hat man pro Durchlauf nur eine Chance die Tasten richtig zu erkennen. Außerdem kosten die vielen PollSwitch()-Aufrufe richtig viel Zeit. Besser wäre wohl ein solcher Ansatz:

    Code:
    #include "asuro.h"
    
    #define k6	taste==1
    #define k5	taste==2
    #define k65	taste==3
    
    char t1, t2, taste;
    
    int main(void)
    {
    	Init();
    	MotorSpeed(150, 150); 	// Zum Testen asuro in der Hand halten!
    	
    	while(1)
    	{
    		t1=PollSwitch();
    		t2=PollSwitch();
    		if (t1 && (t1==t2)) // Taste gedrückt und zweimal die selbe Taste erkannt?
    		{
    			taste=t1;        // Dann überprüfen welche Taste es ist
    
    			if(k6) StatusLED(RED);
    			else if(k5) StatusLED(YELLOW);
    			else if(k65) StatusLED(GREEN);
    		}
    		else StatusLED(OFF); // Keine oder ungültige Taste
    	}
    	return(0);
    }
    (nicht getestet!)

    Den TT-Ball habe ich mit Heißkleber befestigt. Drei Tropfen auf die Schnittkante und mittig auf die Platine geklebt hält ewig und läßt sich bei Bedarf rückstandsfrei entfernen.

    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!

Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress