Stránka 1 z 1

Dotaz ohledně pic

Napsal: 28 říj 2017, 07:50
od josefjosef12341
Dobrý den,

Chtěl bych se zeptat na jednu věc. Mám tento zdrojový kod v PIC napsaný a když ho chci přeložit do hex tak mi to oíše chybu. Nemohl by jste se někdo kouknou kde je chyba. Předem děkuji.

LIST P=16F628A
INCLUDE<P16F628A.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _INTRC_OSC_NOCLKOUT

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

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

START BTFSS TLAC
GOTO $-1
BSF LED
BSFSC TLAC
GOTO $-1

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

GOTO START
END

Napsal: 28 říj 2017, 09:21
od teufel
Pokud máš chybu v kódu, překladač obvykle napíše v kterém je to řádku a napíše kód chyby. Chyba může být i ve špatně nastaveném překladači, chybějícím *.INC souboru apod. Některé chyby nemají vliv na přeložený hex soubor a je možné je ignorovat. V programu na první pohled syntaktickou chybu nevidím

Napsal: 28 říj 2017, 12:01
od josefjosef12341
No on je problém v tom, já ten kod zkopíruji a uložím jako asm a pak to překládám programem MPASM a napíše chybu a nevygeneruje HEX

Napsal: 28 říj 2017, 12:07
od petrfilipi
Budeš muset zkracovat kód, až to půjde přeložit.

Petr

Napsal: 28 říj 2017, 12:11
od josefjosef12341
když jsem odebral toto BSFSC TLAC
GOTO $-1

Tak to šlo přeložit.

Jak by jste ten program upravili, aby když by byly dvě tlačítka a dvě diody. A fungovalo by to takto: Že když se zmáčkně jedno tlačítko tak se rozsvití jedna dioda a když se zmáčkne druhé tlačítko tak první zhasne a rozsvití se druhá a takto furt do kola?

Napsal: 28 říj 2017, 12:33
od procesor
Taká inštrukcia (BSFSC) neexistuje, napíš miesto nej BTFSC ... preloží to bez chyby (čo však nezaručuje správnu funkciu).

Treba vedieť ako je zapojené tlačidlo a ako je zapojená LED, lebo oboje sa dajú zapojiť tak i onak. Programátora zaujíma či je pri stlačení tlačítka nízka alebo vysoká úroveň na vstupe I/O.
Led tiež môže svietiť pri vysokej ale aj nízkej úrovni na výstupe I/O, prípadne obidve Led-ky môžu využívať v tak definovanej funkcii iba jeden bit portu-A ak sa musia napríklad šetriť HW prostriedky.

Algoritmus je jednoduchý, riešení nespočetne veľa, optimalizácia sa dá urobiť ohľadom veľkosti kódu, rýchlosti.

Napsal: 29 říj 2017, 07:15
od josefjosef12341
Děkuji po opravě té inbstrukce to funguje.

Akorát mám problém, že mi ten obvod nefunguje.
A když měřím napětí na portu B kde je ledka, tak to ukazuje pul voltu. Nevíte v čem by mohla být chyba?

Napsal: 29 říj 2017, 08:02
od jezevec
Ono je dobré dát sem schema, jak to máš v reálu zapojené. Máš omezovací odpor u LED? Jak máš zapojený resetovací pin?

Napsal: 29 říj 2017, 08:27
od hakamusai
Ale LEDku máš nadefinovanou na portu A (pin 18 -v případě pouzdra PDIP).