- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 3 von 3

Thema: Mein Entprellprog. unter STK500

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.02.2007
    Beiträge
    5

    Mein Entprellprog. unter STK500

    Anzeige

    Powerstation Test
    Hallo Kollegen,

    habe am Freitag das STK500 bekommen und wollte nun meine eigenen Progr. installieren.
    Habe aber wieder ein kleines Problem, vielleicht könnte mal jemand drüber gucken ??? Bitte!

    Code:
    .include "m8515def.inc"
    
    .def temp = R16
    .def eingang = R17
    .def ziehzeit = R18
    .def wartezeit = R19
    
    
    
    .cseg
    .org 0x000
    rjmp init
    .org 0x009
    rjmp timer_ov
    
    .org 0x015
    
    init:
    	; PORT D als Eingang deklariert
    ldi temp, 0x00
    out DDRD, temp
    ldi temp, 0xFF
    out PIND, temp
    	; PORT B als Ausgang deklariert
    ldi temp, 0xFF
    out DDRB, temp
    ldi temp, 0xFF
    out PORTB, temp
    	; Stackpointer init.
    ldi temp, LOW(RAMEND)
    out SPL, temp
    ldi temp, HIGH(RAMEND)
    out SPH, temp
    	; Timer für Entprellen init
    ldi temp, 0b00000001						; Teiler auf 1 zum Test sonst 1024
    out TCCR0, temp
    ldi temp, 0b00000010
    out TIMSK, temp								; Interrupt bei Overflow
    
    
    ldi ziehzeit, 0xFF
    ldi wartezeit, 0x02		; Testweise auf 02 sonst FF
    
    	; Wartet auf Tasteneingabe.
    warte_taste:
    in eingang, PIND
    ldi temp, 0xFF
    cp eingang, temp
    breq warte_taste
    dec ziehzeit
    out PORTB, ziehzeit
    rcall warte
    rjmp warte_taste
    
    endloop:
    rjmp endloop
    
    	; Hier wird das "wartezeit" heruntergezählt.
    timer_ov:
    dec wartezeit
    reti
    
    	; Nur jeder ca. 1000 Taster wird gezählt. Zeit dafür!
    warte:
    sei
    lauf:
    ldi temp, 0x00
    cp wartezeit, temp
    brne lauf
    cli
    ret
    AVR Studio sagt zwischendurch beim Sim :

    AVR Simulator: Invalid opcode 0xffff at address 0x000007

    Was bedeutet das?

    Funktion sollte sein, man drückt eine Taste und es zählt einen weiter. Wenn man die Taste gefrückt hällt, zählt die Taste immer nach Zeitablauf weiter.

    Vielen Dank schon mal!

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    AVR Simulator: Invalid opcode 0xffff at address 0x000007
    Was könnte das den nur sein??

    Code:
    .cseg
    .org 0x000
    rjmp init
    .org 0x009
    rjmp timer_ov
    wenn Du jetzt noch mal einen Blick ins Datenblatt oder ins .Include-File wirfst steht da

    .equ OVF0addr=$007 ;Overflow0 Interrupt Vector Address
    .equ URXCaddr=$009 ;UART Receive Complete Interrupt Vector Address

    Also was sucht der UART Receive Complete bei Dir im Programm??

    .org 0x009 duch .org 0x007 ersetzen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.02.2007
    Beiträge
    5

    Vielen Dank!

    Vielen DanK! Für die Info!

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad