PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega168 auf RN-MiniControl: Kein Interrupt



rico65
16.05.2006, 20:58
Ich habe ein RN-MiniControl mit ATMega168 und schaffe es
nicht, eine ISR für einen Pegelwechsel an PB4/PCINT4 aufzurufen.
Danke für Hilfe.

Code:

Config Portb = Input
Portb = &HF 'activate pull up

Enable Interrupts 'enable global ints
Enable Pcint0 'we enable pcint0 as this has pcint0-pcint7
On Pcint0 Isr_pcint0 'jump to this label when one of the pins is changed

Do
wait 1
Loop


Isr_pcint0:
Print "Pin change " ; 'wird nie gerufen !!
Return

End

linux_80
16.05.2006, 22:28
Hallo,

ich hab mal verglichen, was Bascom aus Deinem Code macht (ASM-Code im Hex-file),
aber was laut Datenblatt gemacht werden soll.

Dabei geht nur der Teil ab, in dem eingestellt wird, welche Pins eines Ports einen Int auslösen dürfen.
Das müsste man in Deinem Fall im Register PCMSK0 angeben.

Du kannst zum Testen in deinen Code vor Do diese Zeile einbauen:

PCMSK0 = &H10

Somit sollte PCINT4 einen Irq auslösen dürfen.

Denn ich habe erstmal keinen Befehl gefunden, der das automatisch macht, bzw. hab in der Hilfe nicht gefunden, das dieser PinChange-Int gleich mit eingestellt werden sollte.
PCINT kann ich in der Hilfe nicht finden,
auch nicht in der OnlineHilfe bei Mcselec.


Hier hab ich noch was dazu gefunden:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=120208

Da wird es genauso gemacht wie ich mir das gedacht habe.

rico65
16.05.2006, 22:36
Hallo linux_80, vielen Dank! Jetzt funktioniert meine Drehzahlmessung.
rico65