PIC16f877A pamäť

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
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

PIC16f877A pamäť

#1 Příspěvek od mikollar »

Zdravim, napisal som dost dlhy program (cca 4000 riadkov - prikazov) ale neviem ci som uz prekrocil pamat procesora alebo co sa deje. Do urciteho miesta programu vsetko funguje ako ma, ale ak sa splni podmienka program vykoná skok prikazom GOTO skoro na koniec programu, to by mal teorteciky spravit, ale on to nespravi, vlastne nespravi nic a zasekne sa, program je na 100% dobry (mozno treba nieco nastavit aby sa dalo skocit), ak som zmazal zaciatok programu a skratil ho tak tento skok na koniec programu prebehol v poriadku, ako zistim, ze som prekrocil pamat procesora, ze uz do neho nic nevopcham? Pri programovani a overovani nahrateho programu v uP mi vypise ze je vsetko OK, podla tohto by este pamäť mala stacit. Tak ja tomu nechapem ze co s tym je. Treba nieco nastavit alebo je uz naozaj procesor plny a nic viac don nevlezie?

P.S. ak som pri programovani 16f84 prekrocil pamät, tak s tym istym programatorom mi to vyhodilo chybu pri overovani nahrateho programu do uP

Dakujem za rady
Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 00:00
Bydliště: Bratislava

#2 Příspěvek od ViPali »

Predpokladám, že asembler, pretože prekladač by ťa upozornil na preplnenie pamäti.
Ak asembler, tak potom 877 má kapacitu 8000 príkazov, tzn, že si niekde v polovici.
CALL a GOTO je v tvare 10 0kkk kkkk kkkk a 10 1kkk kkkk kkkk, kdek je konkretne číslo určujúce adresu kam skočiť. Je to len 11bitov, preto je možné priamo skočiť len v stránke 0. t.j. 0 - 2048 byt.
Keď chceš skočiť do 1. 2. alebo 3. stránky musíš pred inštrukciou CALL a GOTO pripraviť 12. a 13. bit (je to 3. 4. bit PCLATH).

Pozri Datašit kap. 2.3 je tam aj príklad skok do 1. stránky.
Ako elektrikár sa cítim slobodne.
Môžem hovoriť do vedenia!
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:

#3 Příspěvek od jezevec »

Na stránce www.copsu.cz/mikrop/?default=czmanualy
najdeš datasheet v češtině.
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 »

dakujem dakujem zachranili ste ma, keby to neslo tak uz by som to nestihol prerobit, veeeeeelmi dakujem.
:pray:
Odpovědět

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