Hallo habe folgendes Problem, möchte mich gerne mit den PCINT versuchen und möchte einfach nur LEDs durch einen Interrupt an Pin8 an oder aus schalten. Aber irgendwie funktioniert es nicht. Wäre um hilfe sehr dankbar. µC ist ein Atmega48 .include "m48def.inc" ;Definitionsdatei laden .def temp = r16 .def leds = r17 .cseg ;Beginn eines Code-Segmentes .org 0 ;Startadresse=0 .org PCINT1addr rjmp interrupt ; Interrupt Overflow Handler main: ldi temp, LOW(RAMEND) ; Stackpointer initialisieren out SPL, temp ldi temp, HIGH(RAMEND) out SPH, temp ldi temp, (1<<PCIE1) sts PCICR,temp ldi temp, (1<<PCIF1) sts PCIFR,temp ldi temp, (1<<PCINT8) sts PCMSK1, temp ldi temp, 0x00 ; Port C Auf Eingang out DDRC, temp ldi temp, 0xFF ; Port D auf Ausgang out DDRD, temp out PORTC, temp ; Pull-Up Widerstände Port C einschalten ldi leds, 0x00 out PORTD, leds sei loop: rjmp loop interrupt: ; Interrupt PCINT8 Overflow Handler com leds ;1er Komplement bilden von leds out PORTD, leds reti mfG Sven
Sorry eigene Dummheit, hab mal grad den befehl .org 0x0000 rjmp main ; Reset Handler vergessen und siehe da jetzt gehts auch. mfg sven
Hab aber noch eine frage, kann ich auslesen und vergleichen, welcher Taster grad gedrückt wurde? Wenn ich die Eingänge PCINT 8 - 11 als PCINT bestimme? Vielleicht kennt ja einer dieses Reaktionsspiel, wo man farben sieht und die nachdrücken muss. Sowas in der Art möchten wir für nächstes jahr weihnachstmarkt bauen. dafür brauch ich nun 4 Taster, wo ich die reihenfolge vergleiche und wollte es auf diesem wege versuchen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.