Dotaz ohledně pic

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
josefjosef12341
Příspěvky: 4
Registrován: 28 říj 2017, 00:00

Dotaz ohledně pic

#1 Příspěvek 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
Uživatelský avatar
teufel
Příspěvky: 512
Registrován: 09 úno 2017, 00:00
Bydliště: Na dohled od Spolany

#2 Příspěvek 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
Uživatelský avatar
josefjosef12341
Příspěvky: 4
Registrován: 28 říj 2017, 00:00

#3 Příspěvek 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
petrfilipi
Příspěvky: 2901
Registrován: 13 zář 2005, 00:00

#4 Příspěvek od petrfilipi »

Budeš muset zkracovat kód, až to půjde přeložit.

Petr
Uživatelský avatar
josefjosef12341
Příspěvky: 4
Registrován: 28 říj 2017, 00:00

#5 Příspěvek 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?
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#6 Příspěvek 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.
Uživatelský avatar
josefjosef12341
Příspěvky: 4
Registrován: 28 říj 2017, 00:00

#7 Příspěvek 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?
Uživatelský avatar
jezevec
Hlavní moderátor
Příspěvky: 6101
Registrován: 13 čer 2004, 00:00
Bydliště: Břeclavsko
Kontaktovat uživatele:

#8 Příspěvek 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?
hakamusai
Příspěvky: 939
Registrován: 17 dub 2007, 00:00

#9 Příspěvek od hakamusai »

Ale LEDku máš nadefinovanou na portu A (pin 18 -v případě pouzdra PDIP).
Odpovědět

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