Práce v MPLAB IDE v7.41
Moderátor: Moderátoři
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
Práce v MPLAB IDE v7.41
Jak to udělat aby mě fungoval StIMULUS CONTROLLER pořad nemohu na to přijít jak to přidat do projektu ve starších verzích co je popsána na v publikaci Učebnice programování PIC ale v této verzi jsem na to nepřišel a čím to ovládat ve starších verzích je to přiřazeno jednotlivým klávesám jak nato v této verzi? díky
- Přílohy
-
stimulus.jpg- (16.35 KiB) Staženo 129 x
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
Atlan píše:No pekny obrazokale na figu.
Pozri do helpu MPLabu ci tam nienje nieco o tom. Pripadne hod lepsi obrazok. I ked presne neviem o co ti ide
mě jde o to simulovat stavy například na portuB na jednotlivých bitech a ten obrázek jde nahrát jen omezená velikost tak to je kompromis
- Přílohy
-
stimulus.jpg- (76.94 KiB) Staženo 123 x
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
už zase otravuji
Já nevím kudy kam StIMULUS CONTROLLER konkrétně RA0 SET HIGH a SET LOW už mi funguje ale bohužel jen jednou po přeložení když začnu simulaci ale jakmile simulaci přeruším abych se podíval co ve kterém registru je tak po opětovném spuštění simulace tak StIMULUS CONTROLLER přestane fungovat musím znovu šáhnout do zdrojáku
a pak přeložit kde dělám chybu nebo co mám nastavit? díky za pomoc
- Přílohy
-
stimulus.jpg- (74.06 KiB) Staženo 82 x
-
Milops3
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
stepa píše:Ale houby s octem! Uz 2 jsme ti psali, ze MUSIS STISKNOUT tu sipku FIRE!!!
pochopitelně máčkám FIRE
Kód: Vybrat vše
..
...
.....
btfsc PORTA,0
call SAVE
INCF SEC,F
MOVFW SEC
XORLW 60
BTFSS STATUS,Z
goto druhyp
.......
............
. ......
ponechme stimus controler stranou
když tam dám manuálně do znamená do registru PORTA na pozici PORTA RA0 0 tak má přeskočit instrukci CALL SAVE ale když dám při přerušení simulace PORTA RA0 1 tak by měl jít na instrukci CALL SAVE
jestli to chápu dobře ale mě to tak z nějakého důvodu nechodí
díky
-
Milops3
me todle funguje ,kdyz je PORTA,0 = 0 ->INCF SEC,F /PORTA,0 = 1 ->call SAVE
Kód: Vybrat vše
LIST p=16F628A, R=DEC
INCLUDE<P16f628A.INC>
errorlevel -302
org 0x00
goto INIT
CBLOCK 0x20
SEC
ENDC
INIT
CLRF STATUS ; nastavení BANKY 0
BSF STATUS, RP0 ; nastavení BANKY 1
movlw b'11111111' ; portA
movwf TRISA
bcf STATUS,RP0 ; nastavení BANKY 0
;************************************************
START btfsc PORTA,0
call SAVE
INCF SEC,F
MOVFW SEC
XORLW 60
BTFSS STATUS,Z
goto START
;*************************************************
SAVE NOP
NOP
RETURN
;*************************************************
END
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
me todle funguje ,kdyz je PORTA,0 = 0 ->INCF SEC,F /PORTA,0 = 1 ->call
Kód: Vybrat vše
CLRF STATUS ; nastavení BANKY 0
BSF STATUS, RP0 ; nastavení BANKY 1
movlw b'11111111' ; portA
movwf TRISA
bcf STATUS,RP0 ; nastavení BANKY 0
tohle je asi ono toto jsem přidal a funguje to dík
PS: priste sem vraz celej kod a ne jenom vyteckovanou cast...driv se identifikuje problem.
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
stepa píše:Nojo, banka...musis si na to davat bacha. Nekde musis lezt do druhe banky pro nastaveni TRIS registru a u jinych PICu nemusis(treba 18tkova rada)...holt priste poradne cist datasheety. Ted uz si to budes pamatovat
PS: priste sem vraz celej kod a ne jenom vyteckovanou cast...driv se identifikuje problem.
tak ten kod je tady který má za úkol běžící hodiny a pří vyskytnutí na RA0 1 tak se čas zapíše do eepromky
Kód: Vybrat vše
LIST P=16F84A, R=DEC ; Use the PIC16F84 and decimal system
#include "P16F84A.INC" ; Include header file
__config _XT_OSC & _WDT_OFF & _PWRTE_OFF
poc equ 0X15
;TMP0 equ 0X16
TMP0 EQU 20H
TMP1 EQU 21H
TMP2 EQU 22H
HOD EQU 23H
MIN EQU 24H
SEC EQU 25H
CfgData EQU 26H
CfgAdr EQU 27H
org 000
nop
movlw 10
movwf poc
movlw 15
bsf STATUS,RP0
tris PORTA
movlw 00
tris PORTB
bcf STATUS,RP0
movlw 255
movwf PORTB
btfss PORTA,0
CLRF SEC
CLRF STATUS ; nastavení BANKY 0
BSF STATUS, RP0 ; nastavení BANKY 1
movlw b'11111111' ; portA
movwf TRISA
bcf STATUS,RP0 ; nastavení BANKY 0
; CLRF MIN
; CLRF HOD
; CLRF CfgAdr
goto druhyp
SAVE movf MIN,W
movwf CfgData
CfgSet
CfgGet bcf STATUS, RP0 ; volba banky 0
movf CfgAdr,W ; příprava adresy ke čtení do W
movwf EEADR ; nastavení adresy EEPROM
bsf STATUS,RP0 ; volba banky 1
bsf EECON1,RD ; zapnutí požadavku ke čtení bajtu
bcf STATUS,RP0 ; volba banky 0
movf EEDATA,W ; načtení bajtu do registru W
bcf STATUS, RP0 ; volba banky 0
movf CfgAdr,W ; příprava adresy k zápisu do W
movwf EEADR ; nastavení adresy EEPROM
movf CfgData,W ; příprava dat k zápisu do W
movwf EEDATA ; nastavení dat k zápisu do EEPROM
bsf STATUS,RP0 ; volba banky 1
bcf INTCON,GIE ; zákaz všech přerušení
bsf EECON1,WREN ; povolení zápisu do EEPROM
movlw 55h ; 1. odemykací kód
movwf EECON2 ; zápis 1. kódu
movlw 0AAh ; 2. odemykací kód
movwf EECON2 ; zápis 2. kódu
bsf EECON1,WR ; zapnutí požadavku k zápisu bajtu
bcf EECON1,WREN ; zákaz dalšího zápisu do EEPROM
bsf INTCON,GIE ; povolení přerušení
CfgSet2 btfsc EECON1,WR ; je zápis již dokončen?
goto CfgSet2 ; čekání na dokončení zápisu
INCF CfgAdr,F
movf HOD,W
movwf CfgData
;CfgGet
bcf STATUS, RP0 ; volba banky 0
movf CfgAdr,W ; příprava adresy ke čtení do W
movwf EEADR ; nastavení adresy EEPROM
bsf STATUS,RP0 ; volba banky 1
bsf EECON1,RD ; zapnutí požadavku ke čtení bajtu
bcf STATUS,RP0 ; volba banky 0
movf EEDATA,W ; načtení bajtu do registru W
bcf STATUS, RP0 ; volba banky 0
movf CfgAdr,W ; příprava adresy k zápisu do W
movwf EEADR ; nastavení adresy EEPROM
movf CfgData,W ; příprava dat k zápisu do W
movwf EEDATA ; nastavení dat k zápisu do EEPROM
bsf STATUS,RP0 ; volba banky 1
bcf INTCON,GIE ; zákaz všech přerušení
bsf EECON1,WREN ; povolení zápisu do EEPROM
movlw 55h ; 1. odemykací kód
movwf EECON2 ; zápis 1. kódu
movlw 0AAh ; 2. odemykací kód
movwf EECON2 ; zápis 2. kódu
bsf EECON1,WR ; zapnutí požadavku k zápisu bajtu
bcf EECON1,WREN ; zákaz dalšího zápisu do EEPROM
bsf INTCON,GIE ; povolení přerušení
CfgSet22 btfsc EECON1,WR ; je zápis již dokončen?
goto CfgSet22 ; čekání na dokončení zápisu
INCF CfgAdr,F
; MOVWF CfgAdr
; XORLW 32
; BTFSS STATUS,Z
; CLRF CfgAdr
; CLRF STATUS ; nastavení BANKY 0
; BSF STATUS, RP0 ; nastavení BANKY 1
;movlw b'11111111' ; portA
;movwf TRISA
;bcf STATUS,RP0 ; nastavení BANKY 0
retfie
loop MOVLW 0x06 ;6 DEC
MOVWF TMP2
MOVLW 0x13 ;19 DEC
MOVWF TMP1
MOVLW 0x0AD ;173 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-3
DECFSZ TMP2,F
GOTO $-5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
decfsz poc,F
; goto po
; movlw 255
movwf poc
decfsz PORTB,F
goto loop
nop
druhyp nop
BCF PORTB,0
MOVWF CfgAdr
XORLW 64
BTFSS STATUS,Z
CLRF CfgAdr
MOVLW 0x06 ;6 DEC
MOVWF TMP2
MOVLW 0x13 ;19 DEC
MOVWF TMP1
MOVLW 0x0AD ;173 DEC
MOVWF TMP0
DECFSZ TMP0,F
GOTO $-1
DECFSZ TMP1,F
GOTO $-3
DECFSZ TMP2,F
GOTO $-5
BSF PORTB,0
btfsc PORTA,0
call SAVE
INCF SEC,F
MOVFW SEC
XORLW 60
BTFSS STATUS,Z
goto druhyp
CLRF SEC
INCF MIN,F
MOVFW MIN
XORLW 60
BTFSS STATUS,Z
goto druhyp
CLRF MIN
INCF HOD,F
MOVFW HOD
XORLW 24
BTFSS STATUS,Z
goto druhyp
CLRF SEC
CLRF MIN
CLRF HOD
MOVWF CfgAdr
XORLW 32
BTFSS STATUS,Z
CLRF CfgAdr
goto druhyp
nop
end
org 500
data 10,10,15,20,20,155
end
to je jen rozpracovaný program třeba bys s tým mohl pomoct díky