User Tools

Site Tools


usage:usage:overview

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
usage:usage:overview [2013/06/01 17:48]
carsten
usage:usage:overview [2013/06/01 17:49]
carsten
Line 1: Line 1:
-< code asm> ; ******************************************************************* +test
-; Programm PATermV1.asm +
-; Dieses PA-Terminalprogrammes: Es beinhaltet einen 8 stelligen (4 Byte) +
-; Dekadischen Zähler zum zählen der Hübe eines Pressluftantriebes. Nach  +
-; dem Aufzählen wird der BCD Stelleninhalt für die Siebensegmentanzeige +
-; codiert und anschliessend seriell an die Anzeige versandt. +
-; ******************************************************************* +
- +
-; Seriennummer Antrieb: +
-SN equ d'00000137' ; Terminal Nr. 1 +
- +
- +
- +
-; Register +
-; Namen-Registeradressen (Festwert): +
-; Bank 0: ; Bank 1: +
-INDF equ 0x00 ; <- +
-TMR0 equ 0x01 ; Option Register +
-PLC equ 0x02 ; <-  +
-STATUS equ 0x03 ; <- +
-FSR equ 0x04 ; <- +
-PORTA set 0x05 ; TRISA +
-PORTB set 0x06 ; TRISB +
-EEDATA equ 0x08 ; ECON1 +
-EEADR equ 0x09 ; ECON2 +
-PCLATH equ 0x0A ; <- +
-INTCON equ 0x0B ; <- +
- +
- +
-; Bank 1: +
-TRISA set 0x05 +
-TRISB set 0x06 +
-EECON1 equ 0x08 +
-EECON2 equ 0x09 +
- +
-; Variablen +
- +
-ByteNr set 0x0C +
-Anzeige set 0x0D +
-Anzeigewert set 0x0E +
-Testwert set 0x0F +
- +
-B3 set 0x10 ; Höchste Doppelstelle Anzeige: Mio. und Zehnmio. +
-B2 set 0x11 ; dritte Doppelstelle Anzeige: Zehntausender und Hundertausender +
-B1 set 0x12 ; zweite Doppelstelle Anzeige: Hunderter und Tausender +
-B0 set 0x13 ; niedrigstes Doppelstelle Anzeige: Einer und Zehner +
- +
-B3? set 0x14 ; Redundanzstellen +
-B2? set 0x15  +
-B1? set 0x16  +
-B0? set 0x17  +
- +
-B3?? set 0x18  +
-B2?? set 0x19  +
-B1?? set 0x1A  +
-B0?? set 0x1B  +
- +
-; ************************************************** +
-ESpeicherA set 0x1C +
-PWMa set 0x1D +
-Senden set 0x1E ; Speichert schon gesendet Status +
-PWMs set 0x1F +
- +
-A0 set 0x20 ; Adressspeicher MSB (ID PA-Terminal) +
-A1 set 0x21 ; Adressspeicher LSB +
-F0 set 0x22 ; Fehlerbyte MSB +
-F1 set 0x23 ; Fehlerbyte  LSB +
- +
-A0? set 0x24 ; Redundanzstellen +
-A1? set 0x25 ;  +
-F0? set 0x26 ;  +
-F1? set 0x27 ;  +
- +
-A0?? set 0x28 ;  +
-A1?? set 0x29 ;  +
-F0?? set 0x2A ;  +
-F1?? set 0x2B ;  +
- +
-Schleife1 set 0x2C +
-Schleife2 set 0x2D +
-Schleife3 set 0x2E +
-Schleife4 set 0x2F +
- +
-Telnr set 0x30 +
-SERBUF set 0x31 +
-Schleife5 set 0x3C  +
-Schleife6 set 0x3D +
-Bitindex set 0x3D +
-RAM1 set 0x3E +
-RAM2 set 0x3F +
- +
-Steuer set 0x40 +
-Adresse0 set 0x41 +
-Adresse1 set 0x42 +
-D1 set 0x43 +
-D2 set 0x44 +
-D3 set 0x45 +
-D4 set 0x46 +
-identisch set 0x47 +
-Fehler set 0x48 +
-Fehlkont set 0x49 ; Fehlerkontrollbyte +
-korrekt set 0x4A +
-TS set 0x4B +
-Sprung set 0x4C +
-RAM set 0x4D +
-Vorgabe set 0x4E ; +
-Vergleich set 0x4F        ;  +
- +
- +
- +
-; Konstanten +
- +
-PWMF equ 0x01   ; Pulsweitenschwelle ( <an, > aus) +
-PWMm equ 0x14   ; Pulsweitenzyklusmaximalwert +
- +
- +
- +
- +
-;Bitnamen +
-c equ 0 +
-z equ 2 +
-RP0 equ 5 +
-RP1 equ 6 +
-IRP equ 7 +
-RBIF equ 0 +
- +
-GIE equ 0x07 +
-WR equ 0x01 +
-WREN equ 0x02 +
-RD equ 0x00 +
- +
-;           PORTA +
-ClockLED equ 2 ; Pin1: Anzeige Clock (Bit 2 Port A) +
-serLED equ 3 ; Pin2: Serielle Daten zur Anzeige (Bit 3 Port A) +
-Strobe equ 4 ; Pin3: Strobe zur Anzeige Übernahme (Bit 4 Port A) +
-OutEnabl equ 1 ; Pin18: Anzeige an/aus (Bit 1 Port A) +
-Moved equ 0 ; Pin17: Moved (inside) Signal (eigentlich Hardware PortA.P0) +
-uSchwelle equ D'16' ;  +
-oSchwelle equ D'240';  +
-  +
-;           PortB  +
- ; Hardware (Jumper) Sperre Nullung Zählerstand:  +
-ZeroReset equ 1 ; Low = Nullsetzen gesperrt, high Nullsetzen möglich +
-ReportTrans equ 2 ; Serielle Daten Ausgabe +
-Direction equ 3 ; Richtung der Halbduplex RS485: low = receive, high = send +
-iniDataSave equ 4 ; veranlassse Datensicherung: high = on power,  +
- ; low = Datensicherung ausführen! +
-Commands equ 5 ; Received Remote Commands +
-Program equ 6 ; In Curcuit Programm Data +
-ProClock equ 7 ; Inserie-Programmierclock +
-  +
-; Makrodefinitionen +
-bank0 macro +
- bcf STATUS, RP0 +
- endm +
- +
- +
-bank1 macro +
- bsf STATUS, RP0 +
- endm +
- +
- org 0x00  +
- goto main +
- +
-; hier potetielle Interrups +
- +
- +
-main +
- BSF STATUS, RP0 ; Disable Interupts +
- BCF INTCON, GIE  +
- goto Start +
- +
- +
-; Interruptruitine DATASAVE an H'04' +
-DATASAVE  +
- Call Interrupt ; Interrupt-Einsprungpunkt +
- Sleep +
- return +
- +
-Start +
- ; Initialisierung +
- BSF STATUS, RP0 ; Bank1 +
- MOVLW B'10011000' ; Enable global interlock and special RB0  +
- MOVWF INTCON ; Schreibe ins Inerlockkontrollregister +
- BCF STATUS, RP0 ; Bank0 +
- MOVLW H'00' +
- MOVWF ESpeicherA ; Lade EEpromstartwert +
- +
-; IO-Port Einrichtung +
- bank0 ; adressiere Bank0 +
- CLRF PORTA +
- bank1 ; adressiere Bank1 +
- MOVLW B'00000001' ; 7x Ausgang, 1x Eingang +
- MOVWF TRISA ; Setze Richtung +
- bank0 ; adressiere Bank0 +
- CLRF PORTB +
- bank1 ; adressiere Bank1 +
- MOVLW B'00110011' ; 4x Ausgang, 4x Eingang +
- MOVWF TRISB ; Setze Richtung +
- bank0 ; adressiere Bank0 +
- +
- BTFSS PORTB, 1 ; Wenn Inijumper offen:  ZeroReset = H (EE-> Null), +
- goto LeseEE ; sonst, wenn gesetzt:   ZeroReset = L: EEprom>RAM +
- +
- Call Nullsetzen ; Nullsetzen EEPROM 1,3ms +
-LeseEE Call HoleEE ; 0,9 ms (-> 2,4ms) </code>+
usage/usage/overview.txt · Last modified: 2013/06/01 17:59 by carsten