Stránka 1 z 1
Práce v MPLAB IDE v7.41
Napsal: 19 kvě 2009, 19:07
od markoni
Zdravím
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
Napsal: 20 kvě 2009, 07:21
od Atlan
No pekny obrazok

ale na figu.
Pozri do helpu MPLabu ci tam nienje nieco o tom. Pripadne hod lepsi obrazok. I ked presne neviem o co ti ide

Napsal: 20 kvě 2009, 07:37
od markoni
Atlan píše:No pekny obrazok

ale 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
Napsal: 20 kvě 2009, 13:23
od Atlan
HM neviem ja to riesim klikanim na tu sipku pod napisom Fire

Napsal: 20 kvě 2009, 20:43
od stepa
Stavy simulujes tou sipkou pod FIRE, nastavis logickou uroven a stisknes tu sipku...stav se projevi v nasledujicim kroku simulace.
Jestli ti jde o neco jineho, tak se vyjadri nejak poradne.
Napsal: 23 kvě 2009, 19:38
od markoni
Zdravím
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
Napsal: 24 kvě 2009, 00:16
od stepa
Ale houby s octem! Uz 2 jsme ti psali, ze MUSIS STISKNOUT tu sipku FIRE!!!
Napsal: 24 kvě 2009, 10:04
od Milops3
misto toho set low nebo high dej toggle, pri set low se nastavi na low a zustane low, pri toggle se meni low-high-low-high..... pri mackani sipky
Napsal: 24 kvě 2009, 11:35
od markoni
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
Napsal: 24 kvě 2009, 13:45
od Milops3
a mas ho nastavenej jako vstup
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
Napsal: 24 kvě 2009, 19:09
od markoni
[quote="Milops3"]a mas ho nastavenej jako vstup
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
Napsal: 24 kvě 2009, 19:30
od stepa
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.
Napsal: 24 kvě 2009, 20:30
od markoni
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
Napsal: 24 kvě 2009, 21:52
od stepa
Nevim s cim chces pomoci, ale ty NOPy jsou hrozny...nebylo by lepsi tam dal jednoduchou smycku s DECFSZ?