nefunkční program - záhadná chyba v kódu

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
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

nefunkční program - záhadná chyba v kódu

#1 Příspěvek od kony2807 »

Dobrý den , prosím neukamenujte mě za to , že to bude určitě absolutní prkotina , ale nemůžu tomu už dvě hodiny přijít na kloub , v aplikaci to prostě neběží :( ...

podprogram Del - zpoždění cca 50ms .
podprogram INPORT - přečtení matice klávesnice (s obsluhou pos . reg. 4017)
podprogram send - měl by odeslat po UART 55 , poté data , a nakonec 105
zde mám podezření na čekání na odeslání (btfss TXSTA,1)
a v mainu smyčka s in_key slouží pro zablokování funkce v případě připojení pinu in_key na 0V .

Prosím o pomoc a zárověň o to , aby jse mě neukamenovali :) .
Přílohy
KOD - VSTUPNI.asm
zdrojový kod programu (ASMko)
(3.47 KiB) Staženo 134 x
Naposledy upravil(a) kony2807 dne 26 bře 2008, 17:43, celkem upraveno 1 x.
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#2 Příspěvek od ZdenekHQ »

Buď klidný, tady se kamení háže po úplně jiných "expertech".
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#3 Příspěvek od mikollar »

jednu chybicku mas tu LIST P=16F672A, R=DEC , este ide prezriet program dalej
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#4 Příspěvek od mikollar »

data ti to odosiela spravne?
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#5 Příspěvek od mikollar »

jednu chybicku mas tu LIST P=16F672A, R=DEC , este ide prezriet program dalej
Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 00:00
Bydliště: Bratislava

#6 Příspěvek od ViPali »

V časti delay50000 máš 0x0AD, je to OK, ale asi by stačilo 0xAD.
V časti send máš správne prepínanie bankov?
Ako elektrikár sa cítim slobodne.
Môžem hovoriť do vedenia!
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#7 Příspěvek od mikollar »

vidis tie banky ma nenapadli, ak sa ti nechce hladat co je kde, pred pouzitim registra zapises BANKSEL meno_registra a kompilator uz nastavi prislusnu banku
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#8 Příspěvek od Chenzee »

USART jsem ještě nepoužíval ale jak je to s přerušením? Nemůže odtud vzniknout ztracení programu? :?: :idea:
Uživatelský avatar
mihal
Příspěvky: 1844
Registrován: 06 dub 2005, 00:00
Bydliště: Zilina

#9 Příspěvek od mihal »

Ono zalezi na tom ako to mas nastavene, moznosti PIC16 dobre nepoznam ale u HC08 alebo MSP430 si mozes nastavit od uartu preruseni niekolko, podla toho co chces konkretne odchytit. Obecne sa uart riesi tak, ze si nastavis prerusenie od prijateho bytu. Ak ti vysielanie generuje echo - tak mas idealny stav a podla bytu v prijimacom bufri zistis ci si prijal alebo vyslal. Do prerusenia v prijme napises plnenie prijimacieho bufra, pri vysielani odsypanie vysielacieho bufra. Osetrit treba aj (ak pic16 ma) indikaciu chyby.
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#10 Příspěvek od ZdenekHQ »

Jednak by každej procesor měl mít po resetu všechny přerušení zakázaný, jednak by se do míst, kam skáče při obsluze přerušení neměl cpát hlavní program (což s gustem spousta lidí dělá), ale pouze skoky na obsluhu přerušení či prostý návrat z přerušení. To pro případ, že si něco omylem povolíte, ale nevyužíváte.

Dál se při obsluze přerušení musí uložit všechny registry, který přerušení přepisuje, a potom je zase obnovit.

Pro podprogramy je dobré používat jiné banky registrů než pro hlavní program (záleží na tom, co procesor umí).

Dodržením těchto zásad si ušetříte spoustu času :)
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 00:00
Bydliště: Bratislava

#11 Příspěvek od ViPali »

Priznávam, že nenachádzam problém, snáď by to malo chodiť. Ešte keby si napísal frekvenciu oscilátoru a baudy. A najlepšie by bolo, keby si to okomentoval, možno by tu niekoho niečo trafilo medzi oči.
Ako elektrikár sa cítim slobodne.
Môžem hovoriť do vedenia!
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#12 Příspěvek od nekmil »

Jenom si trochu "rýpnu", to je přímo ukázkový příklad jak nemá vypadat program v assembleru, který sám o sobě je značně nepřehledný.
Je třeba používat komentáře, čím víc, tím líp.
Pokud takový program třeba 1/2 roku nevidíš a pak se k němu vrátíš, že tam uděláš nějakou změnu, sám se pak divíš co jsi to vymyslel. :)
Odpovědět

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