-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Frage zu Interrupt

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979

    Frage zu Interrupt

    Anzeige

    Hallo Zusammen!

    Ich habe mir einen Bumper aus Luftschlauch und drucksensor gebaut... und lasse meinen bot durch auslösen eines interrupts ausweichen... jetzt habe ich das problem das er die anweisungen für den interrupt immer 2 mal hintereinander ausführt... könnte mal jemand mein prog anschauen ob das so richtig ist oder ob es an meinem sensor liegt... und kann man das so machen mit pinb.2 um den pull-up am interrupt einzuschalten?

    vielen dank und schöne grüsse bluesmash
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    jetzt habe ich das problem das er die anweisungen für den interrupt immer 2 mal hintereinander ausführt... könnte mal jemand mein prog anschauen ob das so richtig ist oder ob es an meinem sensor liegt...
    Ich weiss nicht, wie dein Drucksensor aussieht.
    Normale Taster und Schalter prellen. Wenn man sie nicht entprellt, treten beim Ein- und Ausschalten mehrere Flanken auf und dann wird eine Interrupt-Routine auch mehrfach aufgerufen.

    Um das zu vermeiden kann man den Schalter oder Taster entweder elektronisch entprellen, oder aber das Prellen in der Software berücksichtigen. Wenn du mal nach "Entprellen" suchst, müsstest du reichlich Informationen dazu finden.

    Dass deine Interrupt-Routine wegen einem prellenden Druckschater mehrfach aufgerufen wird, kann ich mir vorstellen. Dass die Interrupt Routine immer 2 fach ausgeführt wird allerdings nicht, weil dein "Wendenlinks" und "Retour" über eine halbe Sekunde dauert und solange prellt ein normaler Taster oder Schalter ganz sicher nicht.

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    @Bluesmash: Bascom hatt bei der Version 1.11.7.4 ein Problem mit int2.
    Hast du schon 1.11.7.8 ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo Robert,

    >Hast du schon 1.11.7.8 ?

    seit einiger Zeit lese ich immer wieder von einer 1.11.7.8er Version.
    Der Update-Wizzard ist aber immer noch bei der 7.7(b) und auf der MCS-Webseite ist auch nichts zu finden.

    Wie wo gibts die 7.8?

    Ciao,
    Werner

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    .8 ist mit dem Update von Roboternetz (->Download)
    akutell ist .7
    Beide bearbeiten int2 richtig, soweit ich weiß

    Wenn du .4 hast, solltest du upgraden.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo Robert,

    aha, danke!

    Ciao,
    Werner

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979
    @picnick: habe version .7

    @recycle: danke für den denkanstoss!
    ich habe vorher noch nie etwas von "prellen" gehört... so lehrnt man immer wieder dazu ich habe nun mein problem mit dem befehl "debounce" gelöst und konnte damit gleich 2 probleme lösen: der interrupt wird jetzt immer nur einmal ausgelöst, ich hatte zudem das problem das bei leichten erschüterungen der druckschalter auslöste (da ich ihn sehr fein einstellen muste...) nun braucht es schon einen kräftigen "schlag" um ihn auszulösen...
    ich poste nochmal mein geändertes prog wenn es jemand interessiert...

    könnte mir noch jemand sagen ob das so richtig ist mit dem pull-up am interrupt? oder gibt es da eine "bessere" methode?
    Angehängte Dateien Angehängte Dateien

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied Avatar von DIYLAB
    Registriert seit
    31.10.2004
    Ort
    Berlin
    Beiträge
    156
    Zitat Zitat von PicNick
    @Bluesmash: Bascom hatt bei der Version 1.11.7.4 ein Problem mit int2.
    Moin,

    ich benutze die o.g. Version und in meinem aktuellen Projekt fleißig den INT2. Kann keine Fehlfunktion feststellen.

    Welchen Fehler soll sie denn haben?

    LB,
    Bruno

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    @Bruno: ich muß dich auf morgen vertrösten, ich hab die Doku jetzt nicht bei mir
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #10
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Bei Mega64 u. 128
    Code:
    $regfile = "m64def.dat"
    $crystal = 16000000 
    $baud = 9600
    
    Config Int2 = Falling
    Config Int2 = Rising
    Config Int2 = Low Level
    
    Enable Int2
    
    Do
    Loop
    ;----------------------------------------------
    ;   Config Int2 = Falling
    ;----------------------------------------------
    	LDS	r24,EICRA
    	ANDI	r24,0xCF	; clear ISC20 +  ISC21 
    ;-------------------- !!!!!!!!!!!!!
    	ORI	r24,0x10	; set   ISC20
    ;-------------------- !!!!!!!!!!!!!
    	STS	EICRA,r24
    ;----------------------------------------------
    ; Config Int2 = Rising
    ;----------------------------------------------
    	LDS	r24,EICRA
    	ANDI	r24,0xCF	; clear ISC20 +  ISC21 
    ;-------------------- !!!!!!!!!!!!!
    	ORI	r24,0x18	; set   ISC20 + ISC11
    ;-------------------- !!!!!!!!!!!!!
    
    	STS	EICRA,r24
    
    ;----------------------------------------------
    ; Config Int2 = Low Level
    ;----------------------------------------------
    	LDS	r24,EICRA
    	ANDI	r24,0xCF	; clear ISC20 +  ISC21 
    	ORI	r24,0x00	; none
    	STS	EICRA,r24
    
    ;----------------------------------------------
    ; Enable Int2
    ;----------------------------------------------
    	IN	r24,EIMSK
    	ORI	r24,0x04
    	OUT	EIMSK,r24
    ;----------------------------------------------
    Do
    Loop
    ;----------------------------------------------
    L_0x00F2:
    	JMP	L_0x00F2
    Du siehst, in der Zeile stecken ev. Probleme
    ORI r24,0x10 ; set ISC20
    Er setzt das reserved-Bit

    Und auch das stimmt nicht
    ORI r24,0x18 ; set ISC20 + ISC11
    Er hat statt ISC20 + ISC21 (rising)
    den Flag ISC20 gesetzt (reserved)
    und das falling-Bit vom INT1

    Ob das tatsächlich probleme bringt, hängt vom Einzelfall ab.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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