Práce v MPLAB IDE v7.41

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
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

#1 Příspěvek 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
Přílohy
stimulus.jpg
(16.35 KiB) Staženo 129 x
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#2 Příspěvek 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 :)
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#3 Příspěvek 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
Přílohy
stimulus.jpg
(76.94 KiB) Staženo 123 x
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#4 Příspěvek od Atlan »

HM neviem ja to riesim klikanim na tu sipku pod napisom Fire :)
Uživatelský avatar
stepa
Příspěvky: 4669
Registrován: 05 led 2007, 00:00
Bydliště: poblíž HK
Kontaktovat uživatele:

#5 Příspěvek 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.
...to co pisu nemyslim zle, ikdyz to tak muze vyznit...
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#6 Příspěvek 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
Přílohy
stimulus.jpg
(74.06 KiB) Staženo 82 x
Uživatelský avatar
stepa
Příspěvky: 4669
Registrován: 05 led 2007, 00:00
Bydliště: poblíž HK
Kontaktovat uživatele:

#7 Příspěvek od stepa »

Ale houby s octem! Uz 2 jsme ti psali, ze MUSIS STISKNOUT tu sipku FIRE!!!
...to co pisu nemyslim zle, ikdyz to tak muze vyznit...
Milops3

#8 Příspěvek 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
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#9 Příspěvek 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
Milops3

#10 Příspěvek 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
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#11 Příspěvek 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
Uživatelský avatar
stepa
Příspěvky: 4669
Registrován: 05 led 2007, 00:00
Bydliště: poblíž HK
Kontaktovat uživatele:

#12 Příspěvek 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.
...to co pisu nemyslim zle, ikdyz to tak muze vyznit...
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#13 Příspěvek 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
Uživatelský avatar
stepa
Příspěvky: 4669
Registrován: 05 led 2007, 00:00
Bydliště: poblíž HK
Kontaktovat uživatele:

#14 Příspěvek od stepa »

Nevim s cim chces pomoci, ale ty NOPy jsou hrozny...nebylo by lepsi tam dal jednoduchou smycku s DECFSZ?
...to co pisu nemyslim zle, ikdyz to tak muze vyznit...
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“