- Labornetzteil AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 25

Thema: warum geht dieses Programm nicht?

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Genau, Msleep soll Milisekunden warten, ich weiß auch nicht warum es bei Dir nicht klappt.

    Als Alternative kann man sich die avr-gcc Funktionen angucken und zwar
    _delay_us und _delay_ms zu finden in util/delay.h .

    Was man dabei bedenken muß ist die Optimierung einzuschalten.

    http://www.nongnu.org/avr-libc/user-...il__delay.html

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    12.05.2006
    Beiträge
    32
    Moin!

    Vielleicht ist das Problem eher die PollSwitch Funktion. Wenn Asuro 600ms rückwärts fährt, soll er ja sofort wieder vorwärts fahren. Da er aber viel Schwung hat, geht beim Geschwindigkeitswechsel die Batteriespannung in die Knie und die PollSwitchfunktion gibt fälschlicherweise einen Wert aus. Genau das gleiche passiert häufig, wenn sich Asuro festfährt (am Teppich z.B), dann gibt es bei mir auch einen Wert für PollSwitch ohne Tasterdruck.

    Das würde ich mal untersuchen.
    Mach doch nach Msleep mal MotorSpeed auf 0 dann nochmal Msleep(100) (damit er wirklich steht) und dann lässte ihn wieder fahren.
    Vllt gehts dann.
    gruß
    Norki

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.08.2006
    Beiträge
    140
    Ehrlich gesagt hab ich keine Ahnung was ich mit dem Inhalt der Seite : http://www.nongnu.org/avr-libc/user....il__delay.html jetzt anfangen soll?

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.142
    Blog-Einträge
    3
    Ist Msleep() eine Standardfunktion aus der asuro.h-Headerdatei?
    Jain, Msleep findes Du in späteren Versionen der asuro.c

    hier: http://sourceforge.net/projects/asuro

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.142
    Blog-Einträge
    3
    Vielleicht ist das Problem eher die PollSwitch Funktion. Wenn Asuro 600ms rückwärts fährt, soll er ja sofort wieder vorwärts fahren. Da er aber viel Schwung hat, geht beim Geschwindigkeitswechsel die Batteriespannung in die Knie und die PollSwitchfunktion gibt fälschlicherweise einen Wert aus.
    Wie es der Zufall so will, habe ich mich genau heute morgen mit diesem Problem beschäftigt. Ich habe deshalb eine Funktion geschrieben, welche die ADC-Messung umgeht und einfach den Int1 Portpin abfragt. Damit wird absolut zuverlässig detektiert, ob eine Taste gedrückt ist.

    Code:
    uint8_t KeyPressed(void)
    {
    	uint8_t flag;
    
    	DDRD &= ~SWITCHES;				// High Impedance ( Input )
    
    	if(PIND&SWITCHES)flag=FALSE;
    	else flag=TRUE;
    
    	return flag;
    }

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Genau das stochri, das wollte ich auch gerade schreiben,
    Wenn man nicht genau wissen will welche Taste gedrückt wurde,ist der externe Interrupt sehr gut!

    So habe ich das auch gemacht, wo ich seiner Zeit den Asuro in Assembler programmiert habe...

    Ehrlich gesagt hab ich keine Ahnung was ich mit dem Inhalt der Seite : http://www.nongnu.org/avr-libc/user....il__delay.html jetzt anfangen soll?
    Tja, wenn Du das nicht weiß kann ich Dir auch nicht helfen.
    Es geht sich hier in erster Linie um avr-gcc und das ist halt die wichtigste Seite zu diesem Thema...

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.142
    Blog-Einträge
    3
    Hallo Sebastian,
    das freut mich ja, dass wir die selbe Idee hatten.

    Hast Du eigentlich schon mal das ASURO-Rätsel ausprobiert: https://www.roboternetz.de/phpBB2/vi...c.php?p=214818

    Gruss,
    stochri

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

    Hast Du eigentlich schon mal das ASURO-Rätsel ausprobiert:
    Leider nein, ich habe mal meinen Asuro teilweise auseinandergebaut, weil da mal was wichtiges drauf war, was ich unbedingt haben müßte
    Seitdem liegt er in der Ecke und wartet darauf, wiedermal zusammengebaut zu werden.

    Ich fand es auch sehr schade, wo ich Dein Rätsel las, und warte darauf, das man endlich mal sagt, in was für ein "Monster" Du ihn verwandelt hast aber nee, es ist immer noch geheim

    Gruß Sebatian
    Software is like s e x: its better when its free.
    Linus Torvald

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.142
    Blog-Einträge
    3
    Leider nein, ich habe mal meinen Asuro teilweise auseinandergebaut, weil da mal was wichtiges drauf war, was ich unbedingt haben müßte
    Oh neeeeiiinn ! So wichtig kann ja gar kein Teil sein !

    Ich fand es auch sehr schade, wo ich Dein Rätsel las, und warte darauf, das man endlich mal sagt, in was für ein "Monster" Du ihn verwandelt hast Freudig aber nee, es ist immer noch geheim Traurig
    Ok, ich werd's Dir hier veraten ( in diesem Thread vermutet ja keiner die Lösung ).
    Obwohl ich es nicht tun sollte, weil es für Dich ja sonst keine Anreitz gibt, den ASURO wieder zu reparieren.

    Ich habe eine spezielle Sensormethode um das Programm zu starten benutzt, von der ich geglaubt habe, dass ich als erster herausgefunden habe. War aber nicht so, Arexx-Henk hat es mal in einem seiner Programme benutzt, wie ich später bemerkt habe.
    Die Radencoder-Dioden werden mit 36Khz getaktet. Hält man die Hand in einem bestimmten Winkel über den ASURO, kann man das Programm starten ( daran haben sich viele bei dem Rätsel die Zähne ausgebissen ).

    Das Programm benutzt die Motoren als Lautsprecher. Das hat Henk auch schon mal gemacht, allerdings nur um einfache periodische Frequenzen zu erzeugen ( OK, er hat eine 2 stimmige Bach Sonate implementiert ).
    Bei mir wird ein etwas komplexeres Signal erzeugt, nämlich die Immitation einer schneller werdenden Dampflokomotive.
    Ein Dampflokgeräsusch etnseteht, wenn Dampf schnell aus einem Druckzylinder entweicht. D.h. es ist am Anfang laut und am Schluss leiser. Umgesetzt also: Ein Rauschgenerator der von laut nach leise moduliert wird.
    Ursprünglich hatte ich Zweifel, dass die Motoren in der Lage sind, ein Breitbandiges Signal ohne grosse Eigenresonanzen zu übertragen ( sodass eher ein Pfeifen als ein Rauschen entsteht ). Aber das Ergebnis war ein echt gut klingendes Dampflokomotivengeräsuch.

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Hallo stochri,
    super Sache
    Das mit der Lok hab ich mir ja schon bei dem RN-Treff angeguckt hat wirklich gut geklungen.
    Ich werde meinen Asuro bei der nächsten Gelegenheit wieder fit machen.
    Das Programm von Arexx-Henk kenn ich auch, es ist allgemein sehr lustig daß man Motoren als Lautsprecher benutzen kann

    Danke für die Lösung, ich hoffe, es wird keiner hier reinschauen

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress