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 :D 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 :D 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 :wink:

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 :wink:

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?