Zaslal: st srpen 10 2016, 11:52 Předmět: PIC16F877 - nejde ani blikání LED
Dobrý den,
po nějaké době jsem opět narazil na zcestí. Nejde mi udělat ani blikač s PIC16F877. Nejde o blikač, ale na každé desce dělám kontrolní ledku se kterou testuju všechny funkce.
Pro jistotu jsem vzal jiné IO a zkusil na kontaktním nepájivém poli a hle, stejný výsledek i s RC tak XT oscilátorem. Ledka nezabliká - myslím, že mám nějakou botu v programu, jinak si to nedokážu vyložit. Jsem C++kař, ale dělám to v Assembleru, pro mě občas nepochopitelný jazyk .
Programátor používám PRESTO a samosebou HPV programování - proběhne bez jediné chyby.
kód:
; xxxxxxxxxxxxxxxxxxxxxxxx
; x for UNI - BOARD v 1.0 x
; x firmware for check braket x
; xxxxxxxxxxxxxxxxxxxxxxxx
BSF STATUS,RP0 ;Nastavení banky 1
MOVLW B'00000000' ;Uložením hodnoty do pracovního registru W
MOVWF TRISA ;Přesunutí z registru W do registru TRISA (Dochází k nastavení portů vstupně-výstupních pinů)
MOVLW B'00000000' ;Uložením hodnoty do pracovního registru W
MOVWF TRISB ;Přesunutí z registru W do registru TRISA (Dochází k nastavení portů vstupně-výstupních pinů)
BCF STATUS,RP0
BCF STATUS,RP1
BCF STATUS, RP0 ;
BCF STATUS, RP1 ; Bank0
CLRF PORTA ; Initialize PORTA by
BSF STATUS, RP0 ; Select Bank 1
MOVLW 0x06 ; Configure all pins
MOVWF ADCON1 ; as digital inputs
Založen: Oct 02, 2009 Příspěvky: 5286 Bydliště: PO
Zaslal: st srpen 10 2016, 14:13 Předmět:
Rád by som videl preklad (listing) xxxx.lst toho xxxx.asm
Možno používaš prekladač, ktorý nepotrebuje aspoň jednu medzeru pred inštrukciou. Moje všetky bežné prekladače text na začiatku riadku považujú za návestie.
edit:
Pozná to aj tak zapísané....
V tom bankovaní bude pes.
kód:
Warning[203]: Found opcode in column 1. (BSF)
0000 1683 00023 BSF STATUS,RP0 ;Nastavení banky 1
Warning[203]: Found opcode in column 1. (MOVLW)
0001 3000 00024 MOVLW B'00000000' ;Uložením hodnoty do pracovního registru W
Warning[203]: Found opcode in column 1. (MOVWF)
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0002 0085 00025 MOVWF TRISA ;Přesunutí z registru W do registru TRISA (Dochází k nastavení portů vstupně-v
ýstupních pinů)
Warning[203]: Found opcode in column 1. (MOVLW)
0003 3000 00026 MOVLW B'00000000' ;Uložením hodnoty do pracovního registru W
Warning[203]: Found opcode in column 1. (MOVWF)
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0004 0086 00027 MOVWF TRISB ;Přesunutí z registru W do registru TRISA (Dochází k nastavení portů vstupně-v
ýstupních pinů)
Warning[203]: Found opcode in column 1. (BCF)
0005 1283 00028 BCF STATUS,RP0
Warning[203]: Found opcode in column 1. (BCF)
0006 1303 00029 BCF STATUS,RP1
00030
MPASM 5.43 BLIK.ASM 8-10-2016 15:23:54 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
Warning[203]: Found opcode in column 1. (BCF)
0007 1283 00031 BCF STATUS, RP0 ;
Warning[203]: Found opcode in column 1. (BCF)
0008 1303 00032 BCF STATUS, RP1 ; Bank0
00033
Warning[203]: Found opcode in column 1. (CLRF)
0009 0185 00034 CLRF PORTA ; Initialize PORTA by
Warning[203]: Found opcode in column 1. (BSF)
000A 1683 00035 BSF STATUS, RP0 ; Select Bank 1
Warning[203]: Found opcode in column 1. (MOVLW)
000B 3006 00036 MOVLW 0x06 ; Configure all pins
Warning[203]: Found opcode in column 1. (MOVWF)
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
000C 009F 00037 MOVWF ADCON1 ; as digital inputs
00038
00039
000D 00040 INIT
Warning[203]: Found opcode in column 1. (BSF)
000D 1686 00041 BSF INT_LED
Warning[203]: Found opcode in column 1. (CALL)
000E 201B 00042 CALL WAIT_1000
Warning[203]: Found opcode in column 1. (BCF)
000F 1286 00043 BCF INT_LED
Warning[203]: Found opcode in column 1. (CALL)
0010 201B 00044 CALL WAIT_1000
Warning[203]: Found opcode in column 1. (GOTO)
0011 280D 00045 GOTO INIT
00046
co furt mají všichni s tím assemblerem? Předpokládám, že stejný cíl lze dosáhnout C překladačem, který je zdarma.
Jinak radím maximálně zjednodušit program a vyhnout se věcem jako CALL WAIT_200 50x za sebou.
Založen: Jan 12, 2009 Příspěvky: 7096 Bydliště: Plzeňsko
Zaslal: st srpen 17 2016, 16:07 Předmět:
Ale tohle je assemblerový kód, který vznikl během překladu pascalového kódu.
To jste se ve škole neučili: "preprocesor, kompiler, assembler, linker..." ???
(Asi poslední příležitost, kdy člověk ty pojmy použije.) _________________ Sháním hasičák s CO2 "sněhový", raději funkční.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
No já jsem si myslel, že zadavatel původního příspěvku chce assembler. Proto jsem použil výpis, kde má jak zdrojový kód (řádky se znakem ; na začátku), tak i přeložené příkazy MikroPascalu do assembleru (časové smyčky 1s jsou vypočítání pro krystal 4MHz).
Program nefunguje hlavne preto že pred vstupom do hlavnej slučky MAIN je
nastavená banka1 ale pracovné registre CISLO a CISLOA su v banke 0.
Takže treba nakoniec inicializácie vložiť príkaz BANKSEL CISLO.
Ďalej chýba vstupný bod programu. To vo finále môže byť chyba ale nemusí,
v závislosti od prekladača. Doplnil by som teda následujúcu sekvenciu príkazov.
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.