-         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: Asuro: PollSwitch im Interrupt betrieb

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    10.08.2005
    Beiträge
    32

    Asuro: PollSwitch im Interrupt betrieb

    Anzeige

    Code:
    int main(void) {	
    	Init();
    	EncoderInit();
    	StartSwitch();
    	unsigned char sw_data;
    	
    	while(TRUE) {
    		if(sw_pressed) {
    			MotorState(BREAK, BREAK);
    
    			sw_data = PollSwitch(); // wenn ich die zeile auskommentiere gehts
    
    			Rotate(180, 200);
    
                sw_pressed = FALSE;
    			StartSwitch();
    		} else {
    			MotorState(FWD, FWD);
    			MotorSpeed(200, 200);
    		}
    	}
    	
    	return 0;
    }
    muss man bei der benutzugn von poll switch irgendwas besonderes beachten?
    Denn wenn ich es benutze ist sw_pressed nach dem ersten interrupt dauerhaft TRUE.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    30
    Beiträge
    826
    Also so weit ich das verstanden habe, brauchst du die PollSwitch() im Interrupt Betrieb nciht, da du damit manuell ne Messung anstößt.

    Andun
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    10.08.2005
    Beiträge
    32
    das Problem ist, dass er mir im Interrupt Betrieb nur sagt, dass ein Schalter gedrückt wurde und nicht welcher.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    10.08.2005
    Beiträge
    32
    ok, scheinbar löst er nach einem PollSwitch noch ne weile Interrupts aus.
    Wenn ich demnach ein

    Code:
    while(sw_pressed) {
        sw_pressed = FALSE;
        StartSwitch();
    }
    in die sw_pressed behandlung einbaue gehts.

    Aber wenn jemand ne elegantere Lösung hat - immer her damit...

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Beiträge
    7
    Hi MadMan

    hab grad das gleiche Problem.

    wo wird die Variable sw_pressed bei dir denn gesetzt?

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    10.08.2005
    Beiträge
    32
    das macht ein interrupt in der erweiterten asurolib, siehe:
    https://gna.org/projects/asuro-tools/

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Beiträge
    7
    Danke, werd ich mir mal anschaun.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Beiträge
    7
    hm, ok, habs gesehen.
    nun will ich mir die SIGNAL routine (ich verwende hier nich die original lib und die alte avr-libc) eigentlich selbst schreiben.

    Naja, sowas wie die Interrupts abfangen ist natürlich möglich, aber ich geb dir recht, elegant ist was anderes

    muss mal in mich gehen, wieso denn da am Pin noch low anliegt (nachdem der Schalter losgelassen wurde), bzw wie mans umgehen kann.

    Viele Grüße

    Mooses

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2007
    Beiträge
    7
    Ok, das problem ist natürlich wieder der bewusste Kondensator. Wenn der Schalter losgelassen wird ist die Spannung da erstmal auf logisch 0 und der Kondensatur muss über den 1M Widerstand von Versorgungsspannung aufgeladen werden.

    Was ich jetzt gemacht hab ist, dass ich den Asuro zurücksetzenlasse (für ne halbe sekunde) und in dieser Zeit einfach den Interruptpin wieder auf Ausgang und 1 schalte (wird ja nach PollSwitch() wieder auf Eingang gesetzt ), ich lade also den Kondensator über Versorgung und den Interruptpin, das scheint zu funktionieren.

    Bis dann

    Mooses

  10. #10
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.953
    genau so ist es. der kondensator ist schuld. bei mir hat es sehr geholfen, ihn auszubauen bzw. abzukneifen.
    Die signal routine kannst du natürlich selbst schreiben, öffne die asuro.c und kommentiere die alte routine aus, dann kannst du einen neue schreiben.
    kleinschreibung ist cool!

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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