Stránka 1 z 1

nejede mi program na 16F84

Napsal: 28 zář 2007, 22:09
od Nebster
Zdravím, mám problém s programováním PIC, jsem začátečník (úplný) a nevím co dělám špatně. Snažím se naprogramovat PIC 16F84A tímto programem:
ORG 0x2007
DW _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC
ORG 0
GOTO NASTAVENI

NASTAVENI: CLRF PORTB
MOVLW 0x20H
MOVWF STATUS
MOVLW 0x60H
MOVWF OPTION_REG
MOVLW 0x00H
MOVWF TRISB
BCF STATUS,RP0
ZACATEK: BCF PORTB,RB3
BCF PORTB,RB2
BSF PORTB,RB3
BSF PORTB,RB2
GOTO ZACATEK

END

měly by blikat dvě ledky na RB2 a 3, ale nějak neblikaj.
POtřebuju poradit kde je chyba.
předem dík.

Napsal: 28 zář 2007, 22:17
od Hill
I když tu nejsi tak úplně nový, místo smazání (za porušení pravidel) jsem ti přejmenoval téma.
Takhle máš větší šanci, že se ti na ten prográmek koukne víc lidí.

Vřele doporučuji
http://www.ebastlirna.cz/modules.php?na ... opic&t=684 , zejména bod 7.

Napsal: 28 zář 2007, 23:11
od Kisa
No moc důkladně jsem se na to nedíval, ale všiml jsem si, že tam nemáš zpožďovací cykly. Takže ty ledky asi blikají, ale tak rychle, že ti to připadá jako by svítily.

Zkust použít tuhle smyčku. Podprogram si zavoláš příkazem CALL CEKEJ v místě kde potřebuješ.

CEKEJ MOVLW 128
MOVWF C2
CEK2 MOVLW 0
MOVWF C1
CEK1 DECFSZ C1,1
GOTO CEK1
DECFSZ C2,1
GOTO CEK2
RETURN

A ještě nezapomeň k tomuto podprogramu na začátku nadefinovat proměnné C1 a C2.

Napsal: 29 zář 2007, 08:48
od kony2807
někde se mi na začátku programu vytratil přesun do banky 1 , zkus připsat tohle :

BSF STATUS,RP0

nevím jestli se ti povede nastavit TRISB v bance 0 ... :)
ledatak : TRIS 05
JEŠTĚ K TOMU DEFINOVÁNÍ C0 A C1
TAKŽE
C0 EQU 10h
C1 EQU 11h

NAPSAT NA ZAČÁTEK PROGRAMU

Napsal: 29 zář 2007, 08:58
od Kisa
kony2807 píše:někde se mi na začátku programu vytratil přesun do banky 1 , zkus připsat tohle :

BSF STATUS,RP0

nevím jestli se ti povede nastavit TRISB v bance 0 ... :)
Myslím, že přesun do banky 1 tam má řešen tímto způsobem:

MOVLW 0x20H ;B'00100000'
MOVWF STATUS ;RP0 je 5. bit ve status

Tak tohle by měl mít OK.

RE:

Napsal: 29 zář 2007, 09:17
od nop
nechybí tam na začátku něco jako ?
list p=12f84A
include "p16f84A.inc"

RE:

Napsal: 29 zář 2007, 09:19
od nop
omlouvám se za překlep má tam samozřejmě být
list p=16f84A
include "p16f84A.inc"

Napsal: 29 zář 2007, 17:24
od kony2807
To Kisa : tak toho sem si nevšim , jen sem si ten program tak narychlo proletěl a první co mě napadlo hned na začátku byl přesun do banky 1.
Přesné rozložení bitů na registru status neznám z paměti ... (ale snaha pomoct byla :!: )

Napsal: 29 zář 2007, 22:26
od Kisa
kony2807 píše:To Kisa : tak toho sem si nevšim , jen sem si ten program tak narychlo proletěl a první co mě napadlo hned na začátku byl přesun do banky 1.
Přesné rozložení bitů na registru status neznám z paměti ... (ale snaha pomoct byla :!: )
j taky to neznám z paměti, jen jsem měl zrovna poruce příručku. :wink:

Napsal: 01 říj 2007, 18:49
od Nebster
A chci se ještě zeptat, jestli se dá ěnjak v MPLABu program otestovat jestli to funguje myslím jako nasimulovat nebo taknějak?? ale ne přímo na švábu myslím jenom v tom MPLABu.

Napsal: 01 říj 2007, 19:09
od kony2807
jestli používáš MPLAB 7.22 tak je obsažen simulátor , popis jak s ním pracovat je v knize Moderní učebnice programování mikrokontrolérů PIC 2. díl ...(to není reklama :) )