Konfigurační slovo (přejmenováno)

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

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
toMajstr
Příspěvky: 332
Registrován: 10 lis 2013, 00:00

Konfigurační slovo (přejmenováno)

#1 Příspěvek od toMajstr »

dobrý den, koupil jsem si PIC16F876A ale nějak se mi nedaří napsat konfigurační slovo

Kód: Vybrat vše

   LIST P=16F876A
   INCLUDE<P16F876A.INC>

#DEFINE   TLAC   PORTA,0
#DEFINE   LED   PORTA,1

START   BSF   STATUS,RP0
   MOVLW   B'00000001'
   MOVWF   TRISA
   BCF   STATUS,RP0

   BTFSS   TLAC
   GOTO   $-1
   BSF   LED
   BTFSC   TLAC
   GOTO   $-1

   BTFSS   TLAC
   GOTO   $-1
   BCF   LED
   BTFSC   TLAC
   GOTO   $-1

   GOTO   START
   
   

   END
mohl by mi někdo poradit?
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#2 Příspěvek od forbidden »

Vždyť tam žádný konfigurační slovo nemáš. Obvykle se píše pod INCLUDE.
Proměnný najdeš právě v tom INC souboru, nebo datasheetu.
Uživatelský avatar
toMajstr
Příspěvky: 332
Registrován: 10 lis 2013, 00:00

#3 Příspěvek od toMajstr »

no právě, já se snažil napsat něco na třetí řádek za _CONFIG ale to vyhazovalo chybu
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#4 Příspěvek od forbidden »

Možná proto, že jsou tam dvě podtržítka a ne jedno.
Příklad:

Kód: Vybrat vše

__config  _INTRC_OSC_NOCLKOUT & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _MCLRE_OFF
Uživatelský avatar
toMajstr
Příspěvky: 332
Registrován: 10 lis 2013, 00:00

#5 Příspěvek od toMajstr »

2 podtržítka jsem tam měl, teď už se to skompiluje (až na 2 věci který jsem smazal) ale pořád to nejde

Kód: Vybrat vše

   LIST P=16F876A
   INCLUDE<P16F876A.INC>
   __config  _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_OFF

program by měl fungovat jako zapni/vypni jedním tlačitkem ale tlačítko nereaguje a já netuším proč
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#6 Příspěvek od Atlan »

Ako je konfigurovany oscilator a co tam mas pripojene ty, Mclr pin je zapojeny cez odpor na +5v, tlacitko ti moze zakmitavat... Nemas to osetrene. Tak nabuduce okrem programu aj schemu. Kondok 100n a 100uF mas pripojeny na piny IO?
Uživatelský avatar
toMajstr
Příspěvky: 332
Registrován: 10 lis 2013, 00:00

#7 Příspěvek od toMajstr »

tenhle program fungoval na PIC16F630 tak by měl fungovat i tady ne? mám připojené jen kondíky 22n na krystal 4MHZ kondík 100n ani 100uF. mám to napájený přímo z pickitu včetně MCLR
Uživatelský avatar
Standa33
Příspěvky: 298
Registrován: 07 lis 2009, 00:00

#8 Příspěvek od Standa33 »

Pokud chceš používat PORTA jako digitální vstup/výstup, musíš ho nastavit pomocí registrů ADCON1 = 6 a CMCON = 7(vypnutí kompatátoru).
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#9 Příspěvek od forbidden »

22 n u krystalu určitě fungovat nebude, tak 22 p by bylo o dost lepší. Sice ta tvá věta nedává smysl, ale pochopil jsem, že nepoužíváš blokovací kondík. To je celkem zásadní věc a žádnej pickit to nezachrání. Stejně tak reset pin, pokud není nakonfigurovanej, nejspíš je povolenej (nevím jistě, já vždy píšu do konfigurace požadovanou funkci). A naposledy oscilátor, zase jsi v konfiguračním slovu ani nenapsal jakej je (nějakej bude asi default, ale je nanejvýš vhodný to tam napsat).
Uživatelský avatar
toMajstr
Příspěvky: 332
Registrován: 10 lis 2013, 00:00

#10 Příspěvek od toMajstr »

oprava, kondíky 22p
MCLR by se hodil vypnutý a oscilátor musí být krystal
co mám napsat do nofiguračního slova?
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#11 Příspěvek od forbidden »

Datasheet a ten INC soubor, už jsem to psal nahoře.
Uživatelský avatar
Standa33
Příspěvky: 298
Registrován: 07 lis 2009, 00:00

#12 Příspěvek od Standa33 »

Tohle by mělo být funkční:

Kód: Vybrat vše

;Test tlačítka ON/OFF na PORTA,0. Indikační LED na PORTA,1
;***********************************************************************************************
      LIST P=16F876A
      include "p16f876A.inc"

      __config _LVP_OFF & _FOSC_HS & _DEBUG_OFF & _WRT_OFF & _PWRTE_ON & _WDTE_OFF & _BOREN_ON
;***********************************************************************************************

#define   TLAC   PORTA,0
#define   LED   PORTA,1
;************************************************************
      org   000h
      goto Start

      org   004h
      retfie
;***********************************************************
Start
      bsf   STATUS,RP0         ;přepnuní do bank1

      movlw   06h            ;PORTA nastaven na digitální I/O
      movwf   1Fh            ;ADCON(9Fh)

      movlw   b'00000001'      ;nastavení PA0 In, PA1-PA7 Out
      movwf   05h            ;TRISA(85h)

      bcf   STATUS,RP0         ;přepnutí do bank0


Opak
      BTFSS   TLAC
       GOTO   $-1
       BSF   LED
       BTFSC   TLAC
       GOTO   $-1

       BTFSS   TLAC
       GOTO   $-1
       BCF   LED
       BTFSC   TLAC
       GOTO   $-1

      goto Opak
;***********************************************************
      end
Uživatelský avatar
toMajstr
Příspěvky: 332
Registrován: 10 lis 2013, 00:00

#13 Příspěvek od toMajstr »

Standa33, nefunguje to, už jsem fakt bezradnej :(
Uživatelský avatar
Standa33
Příspěvky: 298
Registrován: 07 lis 2009, 00:00

#14 Příspěvek od Standa33 »

Funguje to jak v simulaci, tak i po nahrání do uProc. Zkusil jsem to na nepáj. poli a vše OK.

Zde je schéma:
Přílohy
Test PIC16F876.GIF
(31.24 KiB) Staženo 120 x
main.HEX
(175 bajtů) Staženo 117 x
main.asm
(1.14 KiB) Staženo 148 x
Uživatelský avatar
toMajstr
Příspěvky: 332
Registrován: 10 lis 2013, 00:00

#15 Příspěvek od toMajstr »

nepochybně dělám něco špatně, nahrál jsem hex soubor, postavil vše podle schématu, ledku asi 20x zkoušel a otáčel, asi 2x jsem to vytáhnul a posunul celý jinam
Odpovědět

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