Hjälp med att komma igång med wisp648
Hjälp med att komma igång med wisp648
Hej!
Har under en längre stund tänkt börja med PICprocessorer, nu har jag kommit en bit på vägen!
Köpte en wisp648 av Jescab som jag byggt och testat med exempelkod från www.voti.nl.
Den funkade finfint och lysdioden jag kopplat upp blinkade som den ska. Tänkte att jag skulle testa ändra hur snabbt lysdioden blinkade genom att skriva om lite i *.jal filen som också fanns på samma sida men nu har jag kört fast ordentligt och får det inte att fungera att kompilera om filen till hex så jag kan skicka in den i min 16f628A.
Någon som kan hjälpa mig på traven i hur man går de steg från kod till färdig hex fil?
Jag är helt grön på picprocessorer men har hållt på ganska mycket med basicstamp. Programmering är jag däremot bättre på pascal, c++ och basic har jag lärt mig i skolan.
Hoppas någon som sagt kan hjälpa mig, kanske hjälpa mig att välja rätt programmeringsspråk och det där med kompileringen.
Tack på förhand!
//Elias
Har under en längre stund tänkt börja med PICprocessorer, nu har jag kommit en bit på vägen!
Köpte en wisp648 av Jescab som jag byggt och testat med exempelkod från www.voti.nl.
Den funkade finfint och lysdioden jag kopplat upp blinkade som den ska. Tänkte att jag skulle testa ändra hur snabbt lysdioden blinkade genom att skriva om lite i *.jal filen som också fanns på samma sida men nu har jag kört fast ordentligt och får det inte att fungera att kompilera om filen till hex så jag kan skicka in den i min 16f628A.
Någon som kan hjälpa mig på traven i hur man går de steg från kod till färdig hex fil?
Jag är helt grön på picprocessorer men har hållt på ganska mycket med basicstamp. Programmering är jag däremot bättre på pascal, c++ och basic har jag lärt mig i skolan.
Hoppas någon som sagt kan hjälpa mig, kanske hjälpa mig att välja rätt programmeringsspråk och det där med kompileringen.
Tack på förhand!
//Elias
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Högnivå och uC är lite sådär, men helt rätt på lite större uC, men (igen) skall man köra högnivå på uC så är nog JAL inte riktigt rätt språk. C är bättre på alla sätt och vis och om inte annat lättare att få hjälp med det då det säkert finns 200 gånger fler som är duktiga på C än på JAL.
JAL går säkert att använda - jag har testat det en gång och.. det fungerade - så helt kass är det inte, men inget att bygga vidare på heller. Kör hellre C eller ASM
JAL går säkert att använda - jag har testat det en gång och.. det fungerade - så helt kass är det inte, men inget att bygga vidare på heller. Kör hellre C eller ASM
Alltså, att *börja* sin resa i PIC världen genom att pilla med firmware
till programmeraren, låter väl kanske inte som riktigt rätt ände...

Och JAL är en väldigt udda konstruktion som det igentligen inte finns
mycket anledning att bry sig om alls.
> Någon som har någon bra exempelkod för att blinka en lysdiod med en 16F628?
till programmeraren, låter väl kanske inte som riktigt rätt ände...


Och JAL är en väldigt udda konstruktion som det igentligen inte finns
mycket anledning att bry sig om alls.
> Någon som har någon bra exempelkod för att blinka en lysdiod med en 16F628?
Kod: Markera allt
;**********************************************************************
; Enkelt blink-a-led, 16F628A.
;
;**********************************************************************
; Other files required:
; 16F628A.LNK (lägg till i projektet som "Linker Script" !)
;
;**********************************************************************
list p=16f628A
#include <p16f628A.inc>
__CONFIG _DATA_CP_OFF & _CP_ON & _LVP_OFF & _BODEN_OFF & _BOREN_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _MCLRE_ON
RESET_VECTOR CODE 0x000 ; processor reset vector
goto start ; go to beginning of program
INT_VECTOR CODE 0x004 ; interrupt vector location
goto isr_routine ; goto main interrupt service routine.
;***************************************************************
MAIN CODE
start
banksel cmcon
movlw h'07'
movwf cmcon ; Stäng av ADC, se databladet om PORTA.
banksel trisa
clrf trisa
clrf trisb ; Alla pinnar = utgångar.
banksel t1con
movlw b'00110001'
movwf t1con ; Se databladet om Timer1.
banksel pie1
movlw b'00000001'
movwf pie1 ; Enable avbrott från TMR1.
banksel intcon
bsf intcon, peie ; Enable "peripheral interrupts".
bsf intcon, gie ; Enable "global interrupts".
loop
goto loop ; Vänta på avbrott (interrupt)...
;***************************************************************
ISR_ROUTINE CODE
isr_routine ; avbrott/interrupt rutin.
banksel porta
comf porta ; Blinka med hela PORTA!
banksel pir1
bcf pir1, tmr1if ; återställ avbrotts flagga.
retfie
end
Har kollat i din guide hur man börjar göra ett projekt i MPLAB men jag förstår inte riktigt det där med att man ska lägga till 16f628.LNK filen? Får upp två rutor en output och en LEDblink.mcw. Står sen att man ska högerklicka på Linker Scripts men när man gör det så får man sedan välja ett *.lkr fil till projektet. Känns lite fel?
Bra! Då är jag snart färdig med första projektet!
Men när man trycker på build all så ska det bildas några filer i en mapp där projektet ligger. men det som händer är att rutan med nedanstående text kommer upp men jag får inga filer! vad måste jag göra?
Så ser det ut i rutan.
Men när man trycker på build all så ska det bildas några filer i en mapp där projektet ligger. men det som händer är att rutan med nedanstående text kommer upp men jag får inga filer! vad måste jag göra?
Kod: Markera allt
Clean: Deleting intermediary and output files.
Clean: Deleted file "D:\Programmering\Led\ledblink.o".
Clean: Deleted file "D:\Programmering\Led\ledblink.lst".
Clean: Deleted file "D:\Programmering\Led\LEDBlink.lib".
Clean: Deleted file "D:\Programmering\Led\LEDBlink.mcs".
Clean: Done.
Executing: "D:\Program\Programmering\MPLAB\MPASM Suite\MPAsmWin.exe" /q /p16F628A "ledblink.asm" /l"ledblink.lst" /e"ledblink.err" /o"ledblink.o" /c-
Message[302] D:\PROGRAMMERING\LED\LEDBLINK.ASM 33 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\PROGRAMMERING\LED\LEDBLINK.ASM 34 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\PROGRAMMERING\LED\LEDBLINK.ASM 42 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[305] D:\PROGRAMMERING\LED\LEDBLINK.ASM 59 : Using default destination of 1 (file).
Executing: "D:\Program\Programmering\MPLAB\MPASM Suite\MPLib.exe" /c "LEDBlink.lib" "D:\Programmering\Led\ledblink.o"
MPLIB 4.14, Librarian
Copyright (c) 2007 Microchip Technology Inc.
Errors : 0
BUILD SUCCEEDED: Tue Jan 08 22:59:46 2008
Va bra ! Helt perfekt.
302-varningarna kan du kolla i MPASM manualen vad de betyder.
Det är alltså "bara" varningar och vill bara kolla att du har koll...
305 varningen är mindre snygg och den bör åtgärdas.
Jag antar att rad 59 är "comf porta", ändra till "comf porta, f" så försvinner den.
För att kolla varför den försvinner, kolla COMF i databladet...
> MPLIB 4.14, Librarian
Här är något galet !
Har du verkligen kört en "build" (F10 t.ex) ??
La du till LKR filen under "Linker Scripts" ??
302-varningarna kan du kolla i MPASM manualen vad de betyder.
Det är alltså "bara" varningar och vill bara kolla att du har koll...

305 varningen är mindre snygg och den bör åtgärdas.
Jag antar att rad 59 är "comf porta", ändra till "comf porta, f" så försvinner den.
För att kolla varför den försvinner, kolla COMF i databladet...
> MPLIB 4.14, Librarian
Här är något galet !
Har du verkligen kört en "build" (F10 t.ex) ??
La du till LKR filen under "Linker Scripts" ??
302 varningen kommer när man använder ett FSR (register) som *inte*
ligger i bank0. Det är bara för att man ska vara säker på att man hanterar
bankerna korrekt. Med BANKSEL är det inga problem.
Och det är ju exakt vad den säger :
"Register in operand not in bank 0. Ensure that bank bits are correct."
Se mot slutet av :
http://elektronikforumet.com/forum/view ... 1&start=15
hur du får bort varningen (om du vill).
Men, hur går det då ?????
ligger i bank0. Det är bara för att man ska vara säker på att man hanterar
bankerna korrekt. Med BANKSEL är det inga problem.
Och det är ju exakt vad den säger :
"Register in operand not in bank 0. Ensure that bank bits are correct."

Se mot slutet av :
http://elektronikforumet.com/forum/view ... 1&start=15
hur du får bort varningen (om du vill).
Men, hur går det då ?????
Nu går det såhär:
och nu ligger det plötsligt en *.hex fil i mappen
Så nu borde det funka som det ska! Testade skicka över den till picen och det funkade men nu vet jag inte vilken port jag ska använda till lysdioden...
Kod: Markera allt
Executing: "D:\Program\Programmering\MPLAB\MPASM Suite\MPAsmWin.exe" /q /p16F628A "ledblink.asm" /l"ledblink.lst" /e"ledblink.err" /o"ledblink.o" /c-
Message[302] D:\PROGRAMMERING\LED\LEDBLINK.ASM 33 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\PROGRAMMERING\LED\LEDBLINK.ASM 34 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\PROGRAMMERING\LED\LEDBLINK.ASM 42 : Register in operand not in bank 0. Ensure that bank bits are correct.
Executing: "D:\Program\Programmering\MPLAB\MPASM Suite\MPLink.exe" "D:\Program\Programmering\MPLAB\MPASM Suite\LKR\16f628a.lkr" "D:\Programmering\Led\ledblink.o" /m"LEDBlink.map" /w /o"LEDBlink.cof"
MPLINK 4.14, Linker
Copyright (c) 2007 Microchip Technology Inc.
Errors : 0
MP2HEX 4.14, COFF to HEX File Converter
Copyright (c) 2007 Microchip Technology Inc.
Errors : 0
Loaded D:\Programmering\Led\LEDBlink.cof.
BUILD SUCCEEDED: Wed Jan 09 19:40:08 2008
