- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 14

Thema: ORG Anweisung - RN-Wissen-Artikel

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Der Prozessor fängt beim Einschalten oder Reset immer an der Speicherstelle 0 an
    Dort steht dann meist ein Goto Start
    Dieser Start ist dann das Hauptprogramm, was sich etwas weiter hinten im Code befindet.
    Der Grund dafür ist: An Speicherstelle 4 befindet sich der Interrupt-Vector
    und da soll natürlich drüber weg gesprungen werden.



    Code:
    MAIN_CODE CODE
      ORG 0                ; Reset Vector, hier gehts immer los nach dem Einschalten
      goto    Main  ; hier steht normalereise ein Goto Hauptprogramm
    
      ORG 4        ; addresse des Interrupt vectors ist fest und immer an Adresse 4 bei diesem Chip
      goto InterruptCode
    
    ; hier ist nun die Speicherstelle 5
    Main:
     ....
     ....
      goto Main ; Hauptschleife
    
    InterruptCode:


    Hier ist noch ein Beispiel:
    Der obere Speicher 0..3 wird hier direkt mit Code gefüllt. Ab Speicherstelle 4 beginnt die Interrupt Funktion
    Das Hauptprogramm liegt dann irgendwo weiter hinten....

    Code:
    ResetVector    CODE H'0000'        ; always fixed to address 0x0000
        NOP
        NOP
        clrf    STATUS
        goto    main
        
    ;--------------------------------------------------------------------
    ; I N T E R R U P T - V E C T O R   
    ;
    InterruptVector CODE H'0004'    ; always fixed to address 0x0004
    Interrupt:
        movwf    Save_Wreg
        swapf    STATUS,W
        movwf    Save_Status
    
        btfsc    INTCON,TMR0IF        ; Timer 0    ; 1 ms Interrupt 
        goto    TIMER0_Interrupt
    
    InterruptEnd:
        swapf    Save_Status,W
        movwf    STATUS
        swapf    Save_Wreg,F
        swapf    Save_Wreg,W
        retfie
    ;--------------------------------------------------------------------
    TIMER0_Interrupt:
        bcf     INTCON,TMR0IF    
        goto    InterruptEnd
    ;--------------------------------------------------------------------
    
    main:    
      ; 
         goto main
    
    Auszug aus dem Datenblatt:
    Klicke auf die Grafik für eine größere Ansicht

Name:	Org_Inf.jpg
Hits:	9
Größe:	44,8 KB
ID:	32340


    Siro
    Geändert von Siro (11.01.2017 um 20:21 Uhr)

Ähnliche Themen

  1. RN-Wissen Artikel zum Wild Thumper Roboter und dessen Controller WTR-CK1
    Von Dirk im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 27
    Letzter Beitrag: 05.07.2017, 18:44
  2. Arduino Nano (mit Bootlader) per USB aus BASCOM brennen /RN-Wissen-Artikel
    Von jguethe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 28.02.2017, 17:33
  3. If-Anweisung
    Von 1udo1 im Forum C - Programmierung (GCC u.a.)
    Antworten: 13
    Letzter Beitrag: 20.01.2009, 13:17
  4. CCRP5-Artikel auf RN-Wissen
    Von pischke im Forum Robby CCRP5
    Antworten: 3
    Letzter Beitrag: 09.01.2007, 11:36
  5. Problem mit der anweisung LCD var
    Von AVRJIS im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 25.02.2005, 07:05

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test