forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Problém s PIC12F1572
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
Luba
Účastník
Účastník


Založen: 13.4.2020
Příspěvky: 12

PříspěvekZaslal: 13 duben 2020, 15:15    Předmět: Problém s PIC12F1572 Citovat

Zdravím všechny návštěvníky tohoto fóra
Chtěl bych Vás poprosit o pomoc a radu. Už nějaký čas se učím programovat PIC. Začal jsem s 12F629, 675 a teď chci přejít na 12F1572, kde bych využil možnost změny frekvence interního oscilátoru a hlavně změnu času WDT.
Narazil jsem ale na problém, že mnou používaná verze MPASM v5.51, ani PICkit3 v3.1 tento procesor nevidí a není v jejich seznamech. Programy používám na PC s Win 7, 32bit.
Po prohledání fór jsem nainstaloval na jiný PC s WIN 8, 64bit. novou verzi MPLAB X-IDE s MPASM v5.87. Zde už zmíněný procesor najdu, přeložím program do HEX a dokonce mi na tomto PC "funguje" i PICkit3. V seznamu PICkit3 sice procesor není, ale po manuálním vložení souboru include do jeho knihovny, jej dokáže automaticky detekovat. Soubor HEX přenesu do PIC, ale prográmek nefunguje.
Nevím ale, na co se mám zaměřit, kde je problém. Jestli v hlavičce programu a nastavení procesoru, nebo v komunikaci s PICkit3.

Můžete se mi prosím někdo mrknout na ten program, jestli tam nemám chyby, zvláště v nastavení procesoru, položky CONFIG a START. Tam si nejsem jistý. Samotný program jsem napsal jednoduchý, jen blikání LED. Jde mi teď o rozchození procesoru. Na PIC12F675 mi program funguje.

Nastavení PIC potřebuji jak je psáno v komentářích programu
Předem pěkně děkuji
Luboš


LIST P=12F1572
#include "p12f1572.inc"


__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOREN_OFF & _CLKOUTEN_OFF


__CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_ON & _BORV_LO & _LPBOREN_OFF & _LVP_ON




cblock 0x20


CNT1
CNT2
CNT3

endc


#define LED1 PORTA,0
#define LED2 PORTA,1
#define LED3 PORTA,2
#define TL_3 PORTA,3
#define TL_2 PORTA,4
#define TL_1 PORTA,5


org 00H
goto START


;*************************************************************************************************************************




;***********************************zacatek programu ***************************************************************

START nop

BANKSEL PORTA
CLRF PORTA ;Init PORTA

BANKSEL LATA ;Data Latch
CLRF LATA

BANKSEL ANSELA
CLRF ANSELA ;digital I/O

BANKSEL TRISA
movlw 38H ;port 3 4 5 vstup/port 0 1 2 výstup
movwf TRISA

BANKSEL WPUA
movlw 30H ;nastavení wpu 4 5
movwf WPUA ;ok

BANKSEL TRISA
movlw 6AH ;nastavení oscilátoru na 4MHz
movwf OSCCON

BANKSEL TRISA
movlw 13H ;nastavení WDT na 512ms
movwf WDTCON

clrf PORTA ;vynuluj výstupy




;**************************** hlavní program *******



CYKLUS
bsf LED1 ;zapne LED1
call BLIK500 ;čekací smyčka
bcf LED1 ;vypne LED1
call BLIK500 ;čekací smyčka
clrwdt
goto CYKLUS ;

;**************************** cekací smycky **********************************************************************************




BLIK500 ;čekací smyčka 500ms
MOVLW D'11'
MOVWF CNT3
BLIK_LOOP1
MOVLW D'225'
MOVWF CNT2
BLIK_LOOP2
MOVLW D'66'
MOVWF CNT1
BLIK_LOOP3
DECFSZ CNT1,1
GOTO BLIK_LOOP3
DECFSZ CNT2,1
GOTO BLIK_LOOP2
DECFSZ CNT3
GOTO BLIK_LOOP1
RETURN

end
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Atlan
Profesionál
Profesionál


Založen: 4.2.2009
Příspěvky: 969

PříspěvekZaslal: 16 duben 2020, 14:17    Předmět: Citovat

Ktomu clrwdt sa to ani nedostane ked je wd 512ms a cakacia slucka 1000ms
A prejdi na Cko.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Luba
Účastník
Účastník


Založen: 13.4.2020
Příspěvky: 12

PříspěvekZaslal: 19 duben 2020, 15:03    Předmět: Citovat

Ahoj
Jj, pravda, zapomněl jsem tam dát další clrwdt po zhasnutí LED.
Mám ale spíš problém s nastavením bank a registrů. Mohl by se mi na to prosím někdo mrknout?
Děkuji

Jo a na Cčko zatím nebudu přecházet. Učím se Asm. Jsem nováček v tomto směru Surprised)
Ještě jednou děkuji všem, kdo mi poradí
L.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
honza3
Profesionál
Profesionál


Založen: 21.1.2008
Příspěvky: 1174
Bydliště: Přerov

PříspěvekZaslal: 22 duben 2020, 18:42    Předmět: Citovat

BANKSEL TRISA
movlw 13H ;nastavení WDT na 512ms
movwf WDTCON

BANKSEL PORTA
clrf PORTA ;vynuluj výstupy

Místo GOTO dej BRA a nuluj WDT.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Mahoney
Profesionál
Profesionál


Založen: 26.12.2013
Příspěvky: 160

PříspěvekZaslal: 23 duben 2020, 7:55    Předmět: Citovat

Tento typ PIC má i výstupní latche, nemělo by se zapisovat do nich?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
honza3
Profesionál
Profesionál


Založen: 21.1.2008
Příspěvky: 1174
Bydliště: Přerov

PříspěvekZaslal: 23 duben 2020, 8:17    Předmět: Citovat

Mělo,ale jde to i do PORTx.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Luba
Účastník
Účastník


Založen: 13.4.2020
Příspěvky: 12

PříspěvekZaslal: 24 duben 2020, 16:52    Předmět: Citovat

honza3 napsal:
BANKSEL TRISA
movlw 13H ;nastavení WDT na 512ms
movwf WDTCON

BANKSEL PORTA
clrf PORTA ;vynuluj výstupy

Místo GOTO dej BRA a nuluj WDT.


Zdravím všechny a děkuji všem za příspěvky. Zvláštní poděkování honzovi3.
Měl jsi pravdu. Stačilo se přepnout do Banky PORTA před nulováním portů a už to šlape. Že mě to hned nenapadlo Very Happy Děkuji ještě jednou

Mimochodem BRA je pro mě novinka. Používám jen GOTO. Proč BRA a ne GOTO? Děkuji předem za vysvětlení.
Luboš
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
honza3
Profesionál
Profesionál


Založen: 21.1.2008
Příspěvky: 1174
Bydliště: Přerov

PříspěvekZaslal: 24 duben 2020, 20:01    Předmět: Citovat

http://forum.mcontrollers.com/viewtopic.php?t=4157
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Luba
Účastník
Účastník


Založen: 13.4.2020
Příspěvky: 12

PříspěvekZaslal: 24 duben 2020, 21:32    Předmět: Citovat

Tak z toho nejsem ani trochu moudrej Surprised)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
honza3
Profesionál
Profesionál


Založen: 21.1.2008
Příspěvky: 1174
Bydliště: Přerov

PříspěvekZaslal: 24 duben 2020, 22:10    Předmět: Citovat

Luba napsal:
Tak z toho nejsem ani trochu moudrej Surprised)


Pokud to máš takhle tak používej bra dokud ti při kompilaci nenapíše error.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Luba
Účastník
Účastník


Založen: 13.4.2020
Příspěvky: 12

PříspěvekZaslal: 25 duben 2020, 7:50    Předmět: Citovat

Ahoj, dal jsem BRA a kompilace i program je v pohodě. Prosím Tě a můžu používat BRA místo GOTO vždy. V pár programech mám i skoky s použitím dolaru a nerozumím téhle Tvé větě:

"Bacha na to!!!!když skáčeš pomocí bra $+6 nebo bra $-6 tak to skočí o 3 řádky, ALE goto $+6 nebo goto $-6 skočí při líchém počtu instrukcí o 4."

Nerozumím, proč skáče o jiný počet řádků, než je zadáno.
Děkuji
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
honza3
Profesionál
Profesionál


Založen: 21.1.2008
Příspěvky: 1174
Bydliště: Přerov

PříspěvekZaslal: 25 duben 2020, 10:32    Předmět: Citovat

Já datasheet tohohle švába nečetl,ale to skákání pomoci $ se týká hlavně pro 18F.

Jde o to že PIC počítá po 2, nejde skákat po lichých číslech. když už dáš někam $ tak si to v simulaci ověř.

Bra $ + 10 není to samé jako goto $ + 10, ale není to pravda vždy.

Jsem po noční a nerad bych se do toho zamotal Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Luba
Účastník
Účastník


Založen: 13.4.2020
Příspěvky: 12

PříspěvekZaslal: 25 duben 2020, 18:20    Předmět: Citovat

No já používám GOTO $ +/- u PIC12F675 a jede to v pohodě. Je fakt že jsou to sudá čísla. Lichá jsem nikde nepsal, tak nevím.
Simulátor je teprve v plánu, zatím je to pro mě španělská vesnice, jako ostatně spousta dalších věcí. Zatím se učím a Smile
Tenhle PIC jsem chtěl vyzkoušet, protože je o 10,-Kč levnější než 675, pro mou aplikaci plně dostačující a má mnohem víc možností v oblasti časování WDT a pracovní frekvence.
Pracuji zrovna na bateriově napájeném snímači otáček a jde mi především o snížení spotřeby.
Děkuji za trpělivost Smile
L.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Billy Bob Bean
Profesionál
Profesionál


Založen: 21.9.2009
Příspěvky: 335
Bydliště: OLOMOUC - BRNO

PříspěvekZaslal: 27 duben 2020, 9:20    Předmět: Citovat

Luba napsal:
Ahoj, dal jsem BRA a kompilace i program je v pohodě. Prosím Tě a můžu používat BRA místo GOTO vždy. V pár programech mám i skoky s použitím dolaru a nerozumím téhle Tvé větě:

"Bacha na to!!!!když skáčeš pomocí bra $+6 nebo bra $-6 tak to skočí o 3 řádky, ALE goto $+6 nebo goto $-6 skočí při líchém počtu instrukcí o 4."

Nerozumím, proč skáče o jiný počet řádků, než je zadáno.
Děkuji

Ahoj tohle se týká 18F řady, ta funguje trochu jinak.
PIC12,16 pokud si vzpomínám dobře, tak má 14b programové slovo a jsou v skokách možné jak liché tak sudé adresy. U PIC18 je 16b programové slovo a tam si to zjednodušili v návrchu tak, že se skáče jen po sudých adresách, lichá je na půlku řádku a to nejde.

Na zápis do výstupních pinů si zvykni používat odpovídající LATx pokud to ten konkrétná PIC má. Do PORTx se nezapisuje, tam se jen čte stav vstupů. Ono to sice u některých brouků funguje, ale jen u některých, navíc se pak můžeš dostat do R-M-W pasti a tato chyba/ nedokonalost tě může pěkně ztrestat.

Osobně bych na začátek používal GOTO než BRA. BRA dosáhne jen 127 adres daleko, GOTO obsáhne celou paměť. Ale chápu kam tím Honza míří, šetří to paměť.

BRA $+2 je to stejné co GOTO $+2. Znak dolaru je aktuální adresa PC, takže $ + 2 skočí o 2 adresy dál.

_________________
Stavím UPSky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Luba
Účastník
Účastník


Založen: 13.4.2020
Příspěvky: 12

PříspěvekZaslal: 27 duben 2020, 19:15    Předmět: Citovat

Ahoj, děkuji za další rady.
Jen nerozumím této větě: Na zápis do výstupních pinů si zvykni používat odpovídající LATx pokud to ten konkrétná PIC má. Do PORTx se nezapisuje, tam se jen čte stav vstupů.

Můžeš mi prosím upřesnit, kde mám tuto chybu?
Děkuji pěkně předem
L.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
Jdi na stránku 1, 2  Další
 
Strana 1 z 2
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2020 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)