www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PCINT Probleme bei Atmega48


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry eigene Dummheit, hab mal grad den befehl

.org 0x0000
        rjmp    main            ; Reset Handler

vergessen und siehe da jetzt gehts auch.

mfg sven

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.