Nybörjarfrågor.
När man installerar MikroC följer det med ett antal exempler. Om du installerar med standart-path blir det:
C:\Program\Mikroelektronika\MikroC\Examples och sedan är det bara att välja.
Mikroelektronika har också ett forum... och med google kan man hitta mycket, inse dock att nära nog allt är på engelska.
Men jag ställer mig i sodjans led: lär dig PIC'en i assembler först, det tror jag kan bli lättare och när du "kan" PIC kan du börja leka med C.
C:\Program\Mikroelektronika\MikroC\Examples och sedan är det bara att välja.
Mikroelektronika har också ett forum... och med google kan man hitta mycket, inse dock att nära nog allt är på engelska.
Men jag ställer mig i sodjans led: lär dig PIC'en i assembler först, det tror jag kan bli lättare och när du "kan" PIC kan du börja leka med C.
Jag har börjat lära mig assembler nu. Men jag undrar lite om vad jag gör för fel när jag skall testa min kod. Jag har följt en tutorial som jag hittade på nätet. Där står allting om koden men inte hur man gör i MPLAB Såhär gör jag:
projekt>projektwissard>Fyller i min PIC osv. Sedan har jag skrivit koden och lagt till den i mitt projekt. Sedan tar jag File>export>ok
Då när jag skall tanka över det till picen får jag följande felmedelande:
Target not found in configuration table
Target not auto-detectef, please specify on commandline!
Var är denna "Commandline"?
Här är min kod:
Koden är igentligen inte för min PIC, men jag har kontrolerat och adresserna till Bank0 och 1 stämmer överäns med min PIC:
projekt>projektwissard>Fyller i min PIC osv. Sedan har jag skrivit koden och lagt till den i mitt projekt. Sedan tar jag File>export>ok
Då när jag skall tanka över det till picen får jag följande felmedelande:
Target not found in configuration table
Target not auto-detectef, please specify on commandline!
Var är denna "Commandline"?
Här är min kod:
Kod: Markera allt
;*****Set up the Constants****
STATUS equ 03h ;Address of the STATUS register
TRISA equ 85h ;Address of the tristate register for port A
PORTA equ 05h ;Address of Port A
COUNT1 equ 08h ;First counter for our delay loops
COUNT2 equ 09h ;Second counter for our delay loops
;****Set up the port****
bsf STATUS,5 ;Switch to Bank 1
movlw 00h ;Set the Port A pins
movwf TRISA ;to output.
bcf STATUS,5 ;Switch back to Bank 0
;****Turn the LED on****
Start movlw 02h ;Turn the LED on by first putting
movwf PORTA ;it into the w register and then
;on the port
;****Start of the delay loop 1****
Loop1 decfsz COUNT1,1 ;Subtract 1 from 255
goto Loop1 ;If COUNT is zero, carry on.
decfsz COUNT2,1 ;Subtract 1 from 255
goto Loop1 ;Go back to the start of our loop. ;This delay counts down from ;255 to zero, 255 times
;****Delay finished, now turn the LED off****
movlw 00h ;Turn the LED off by first putting
movwf PORTA ;it into the w register and then on
;the port
;****Add another delay****
Loop2 decfsz COUNT1,1 ;This second loop keeps the
goto Loop2 ;LED turned off long enough for
decfsz COUNT2,1 ;us to see it turned off
goto Loop2 ;
;****Now go back to the start of the program
goto Start ;go back to Start and turn LED ;on again
;****End of the program****
end ;Needed by some compilers,
;and also just in case we miss
;the goto instruction.
1: TA BORT DEFINITIONERNA PÅ STATUS, TRISA & PORTA!!!!!! Dessa definitioner finns i den definitionsfil som man ska använda!
2: Vad använder du 'export' till????
3: ett lite exempel:
2: Vad använder du 'export' till????
3: ett lite exempel:
Kod: Markera allt
list p=16f628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
errorlevel -302 ; suppress message 302 from list file
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
org h'71'
w_temp res 1 ; variable used for context saving
status_temp res 1 ; variable used for context saving
pclath_temp res 1 ; variable used for context saving
org h'20'
Postscale res 1 ; Every 25 of these is one second
Seconds res 1 ; Used to count the seconds
Minutes res 1 ; Used to count the minutes
Hours res 1 ; Used to count the hours
Days res 1 ; Used to count the days
Months res 1 ; Used to count the months
Target_Months res 1 ; The alarm month value
Scan_Ctr res 1 ; Used to scan the display and such
ScanDigits res 3 ; Holds the digit pattern
DivTens res 1
Keys_Raw res 1
Keys_Previous res 1
Key_Repeat res 1
Keys_Incoming res 1
Mode_Timer res 1
Diff res 1
Update res 1
Start org h'000'
goto Initialize ; go to beginning of program
;--------------------------------------------------
ISR org h'004' ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,W ; move status register into W register
movwf status_temp ; save off contents of STATUS register
movf PCLATH,W
movwf pclath_temp
clrf PCLATH ; Be sure that wer'e home alone
bcf STATUS,RP0 ; Same thing here
bcf STATUS,RP1 ; and here
Timer2_Int
btfss PIR1,TMR2IF ; Is it Timer2?
goto Timer0_Int ; Jump if not
bcf PIR1,TMR2IF ; Clear interrupt flag first of all
... gör en massa grejor
Timer0_Int
btfss INTCON,T0IF ; Is it Timer0?
goto ISR_Exit ; Jump if not
bcf INTCON,T0IF ; Clear interript request flag
... göra fler grejor
ISR_Exit
movf pclath_temp,W ; Read copy of PCLATH
movwf PCLATH ; Restore to pre-ISR content
movf status_temp,W ; Retrieve copy of STATUS register
movwf STATUS ; Restore pre-isr STATUS register contents
swapf w_temp,F
swapf w_temp,W ; Restore pre-isr W register contents
retfie ; Return from interrupt
;--------------------------------------------------
Initialize
banksel OPTION_REG ; Select correct bank
movlw b'10000011' ; The pattern...
movwf OPTION_REG ; to put into CONFIG-register
clrf TRISB ; Set it to all out
movlw b'00110000' ; Make tha I/O-pattern
movwf TRISA ; Set I/O-pattern
banksel PORTA ; Select correct bank
movlw h'FF' ; Shut off A/D-stuff value
movwf CMCON ; No A/D-stuff
; Zerorize time counters
clrf Postscale ; Start with clean time
clrf Seconds ; Start with clean time
clrf Minutes ; Start with clean time
clrf Mode_Timer ; Start in status mode
; Enable interrupts
banksel PIE1 ; Select correct bank
bsf PIE1,TMR2IE ; Enable TIMER2 overflow interrupt
banksel INTCON ; The bank thing
clrf TMR0 ; Please hold on just a little while
movlw b'11100000' ; Enable Timer0 & Aux. interrupts
movwf INTCON ; Set the pattern into INTCON
; Set Timer2 to give 50Hz interrupts
banksel PR2 ; the bank thing
movlw d'124' ; With this prescaler value + 1
movwf PR2 ; Set in here it gives 25Hz
banksel T2CON ; Another bank thingy
movlw b'01001110' ; The pattern...
movwf T2CON ; to start Timer2
call Load_Time_Count ; Restore old values
bsf Update,0 ; Start an update anyhow
;--------------------------------------------------
Main ; Do forever
movf Update,F
btfsc STATUS,Z
goto Main
... mer program som jag inte vill visa
goto Main
Jag följde bara en tutorial som jag hittade på följande sida:
http://www.mstracey.btinternet.co.uk/
Jag ersatte första delen av min kod(se längre ner) och körde jag build all och fick följande fel:
Hur skall jag definera dessa "symboler"?
http://www.mstracey.btinternet.co.uk/
Jag ersatte första delen av min kod(se längre ner) och körde jag build all och fick följande fel:
Kod: Markera allt
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "test.asm" /l"test.lst" /e"test.err"
Error[113] C:\TEST.ASM 24 : Symbol not previously defined (COUNT1)
Error[113] C:\TEST.ASM 26 : Symbol not previously defined (COUNT2)
Error[113] C:\TEST.ASM 37 : Symbol not previously defined (COUNT1)
Error[113] C:\TEST.ASM 39 : Symbol not previously defined (COUNT2)
Halting build on first failure as requested.
BUILD FAILED: Mon Apr 10 19:31:40 2006
Kod: Markera allt
list p=16f628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
errorlevel -302 ; suppress message 302 from list file
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
;****Set up the port****
bsf STATUS,5 ;Switch to Bank 1
movlw 00h ;Set the Port A pins
movwf TRISA ;to output.
bcf STATUS,5 ;Switch back to Bank 0
;****Turn the LED on****
Start movlw 02h ;Turn the LED on by first putting
movwf PORTA ;it into the w register and then
;on the port
;****Start of the delay loop 1****
Loop1 decfsz COUNT1,1 ;Subtract 1 from 255
goto Loop1 ;If COUNT is zero, carry on.
decfsz COUNT2,1 ;Subtract 1 from 255
goto Loop1 ;Go back to the start of our loop. ;This delay counts down from ;255 to zero, 255 times
;****Delay finished, now turn the LED off****
movlw 00h ;Turn the LED off by first putting
movwf PORTA ;it into the w register and then on
;the port
;****Add another delay****
Loop2 decfsz COUNT1,1 ;This second loop keeps the
goto Loop2 ;LED turned off long enough for
decfsz COUNT2,1 ;us to see it turned off
goto Loop2 ;
;****Now go back to the start of the program
goto Start ;go back to Start and turn LED ;on again
;****End of the program****
end ;Needed by some compilers,
;and also just in case we miss
;the goto instruction.
> Jag har följt en tutorial som jag hittade på nätet.
Ge gärna en länk så även *vi* vet vad *du* har läst...
> projekt>projektwissard>
Jag brukar bara köra Project > New. Se : http://www.jescab.se/Info_MPLAB.html
> Sedan tar jag File>export>ok
För att skapa HEX filen så kör du "Build". Finns en knapp i knapp-raden.
Eller F10 (tror jag, du får dubbelkolla...)
> Då när jag skall tanka över det till picen får jag följande felmedelande:
Vad är "tanka" ?????
> Var är denna "Commandline"?
Det beror på vad "tanka" ovan betyder....
Det här är inte "20 frågor", allt blir mycket effektivare för alla om du
är tydlig på en gång, då slipper vi onödiga fråga/svar rundor...
Angående koden :
- Det kan inte vara hela koden, det saknas en del i början (_CONFIG och LIST direktiv t.ex).
- Vilken processor är det avsett till ? (Det saknas även INCLUDE av "device-filen").
Under tiden jag skrev kom det ett programexempel från Icecap. Bra.
Där finns en korrekt början på koden.
Titta gärna i P16F628A.INC så förstår du vad den gör.
Där finns även definitionerna för __CONFIG raden.
I Icecap's exempel körs processorn med interna oscillatorn ("_INTOSC_OSC_NOCLKOUT").
Men notera att koden är skriven i "absolute mode" istället för "relocatable mode"
vilket är det som "gäller" i dag.
För en snabbgenomgång av skillnanderna, se : http://www.jescab.se/Rellocmode.html
I relocatable mode ersätts "ORG" med "CODE" och "UDATA".
Se dokumentationen angående dessa.
Det konfig-beskrivning till MPLAB som jag länkade till ovan (på min sinda),
sätter upp en miljö för relocatable mode.
Jag kan ta din kod och göra ett färdigt körbart exempel, men det blir lite senare...
Ge gärna en länk så även *vi* vet vad *du* har läst...

> projekt>projektwissard>
Jag brukar bara köra Project > New. Se : http://www.jescab.se/Info_MPLAB.html
> Sedan tar jag File>export>ok
För att skapa HEX filen så kör du "Build". Finns en knapp i knapp-raden.
Eller F10 (tror jag, du får dubbelkolla...)
> Då när jag skall tanka över det till picen får jag följande felmedelande:
Vad är "tanka" ?????
> Var är denna "Commandline"?
Det beror på vad "tanka" ovan betyder....

Det här är inte "20 frågor", allt blir mycket effektivare för alla om du
är tydlig på en gång, då slipper vi onödiga fråga/svar rundor...
Angående koden :
- Det kan inte vara hela koden, det saknas en del i början (_CONFIG och LIST direktiv t.ex).
- Vilken processor är det avsett till ? (Det saknas även INCLUDE av "device-filen").
Under tiden jag skrev kom det ett programexempel från Icecap. Bra.
Där finns en korrekt början på koden.
Titta gärna i P16F628A.INC så förstår du vad den gör.
Där finns även definitionerna för __CONFIG raden.
I Icecap's exempel körs processorn med interna oscillatorn ("_INTOSC_OSC_NOCLKOUT").
Men notera att koden är skriven i "absolute mode" istället för "relocatable mode"
vilket är det som "gäller" i dag.
För en snabbgenomgång av skillnanderna, se : http://www.jescab.se/Rellocmode.html
I relocatable mode ersätts "ORG" med "CODE" och "UDATA".
Se dokumentationen angående dessa.
Det konfig-beskrivning till MPLAB som jag länkade till ovan (på min sinda),
sätter upp en miljö för relocatable mode.
Jag kan ta din kod och göra ett färdigt körbart exempel, men det blir lite senare...
Svar till Icecap, vi får ta Kalf's kod sedan... 
Jag brukar inte gilla att kopiera direkt ur manualen, men det är faktiskt enklast här...
att automatiskt allokera variablerna från SHAREBANK i LKR filen.
Vad som händer på processorer utan "unbanked RAM" vet jag inte, ett fel antagligen.
Notera också att på de processorer som *bara* har "unbanked RAM"
(t.ex 12F629/675) så *måste* man använda UDATA_SHR, bara UDATA ger där ett fel.
Kolla 16F628A.LKR och 12F629.LKR så blir det lite tydligare...
UDATA_ACS är specifik för "Access bank" i PIC18-serien
UDATA_OVR är för definition av (temp-) variabler där adressen kan
delas mellan olika moduler (återanvändning)

Jag brukar inte gilla att kopiera direkt ur manualen, men det är faktiskt enklast här...

Alltså, genom att använda UDATA_SHR, så kommer länkaren4.64.1 Syntax
[label] udata_shr [RAM_address]
4.64.2 Description
This directive declares the beginning of a section of shared uninitialized data. If label
is not specified, the section is named .udata_shr. The starting address is initialized
to the specified address or will be assigned at link time if no address is specified. This
directive is used to declare variables that are allocated in RAM that is shared across all
RAM banks (i.e. unbanked RAM). No code can be generated in this segment. The res
directive should be used to reserve space for data.
att automatiskt allokera variablerna från SHAREBANK i LKR filen.
Vad som händer på processorer utan "unbanked RAM" vet jag inte, ett fel antagligen.
Notera också att på de processorer som *bara* har "unbanked RAM"
(t.ex 12F629/675) så *måste* man använda UDATA_SHR, bara UDATA ger där ett fel.
Kolla 16F628A.LKR och 12F629.LKR så blir det lite tydligare...
UDATA_ACS är specifik för "Access bank" i PIC18-serien
UDATA_OVR är för definition av (temp-) variabler där adressen kan
delas mellan olika moduler (återanvändning)
Så nu har jag skrivit ett eget(klippt ihop ifrån Icecaps kod och ifrån en annan tutorial. Se länk nedan.) program, men får det inte att fungera. Det jag vill göra är heltenkelt att bara få en LED att lysa. Jag tror att alla portA's portar blir 1or. Men när jag skall skicka över det till PIC'en(detta är va ja kallade "tanka" sodjan.) så får jag följande fel:
Min kod ser ut som följande:
Jag tog den översta delen ifrån icecaps kod. Var hittar jag var jag kan lära mig vad jag skall sätta i __config ?
Länk till tutorial jag läst: http://www.winpicprog.co.uk/pic_tutorial1.htm
Kod: Markera allt
XWisp2 version 1.5.03 (Sep 06 2004, Open Watcom C 1.30)
File B452-1.Hex loaded and Intel Hex format conforming
Total of program and data memory: 112 bytes
Programmer Wisp628, firmware version 1.09
Detected target: 16F628A revision 08 (ID=1068)
Target erased
Transferring image to 16F628A via Wisp628
Transferring program memory...OK!
Verifying program memory......OK!
Transferring ID memory......OK!
Verifying ID memory.........OK!
Transferring Data memory........Wbus command failure!
Write-verify faild after 0.15 seconds, rc 21!
Xwisp2W faild after 1.19 seconds, rc 21!
Kod: Markera allt
list p=16f628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
;****Set up the port****
bsf STATUS,5 ;Switch to Bank 1
movlw 00h ;Set the Port A pins
movwf TRISA ;to output.
bcf STATUS,5 ;Switch back to Bank 0
;****Turn the LED on****
Start movlw 02h ;Turn the LED on by first putting
movwf PORTA ;it into the w register and then
;on the port
;****End of the program****
end ;Needed by some compilers,
;and also just in case we miss
;the goto instruction.
Länk till tutorial jag läst: http://www.winpicprog.co.uk/pic_tutorial1.htm
> Var hittar jag var jag kan lära mig vad jag skall sätta i __config ?
*Vad* du skall sätta där beror på hur processorn ska "köras".
Med eller utan kristall o.s.v.
*Hur* du ska sätta upp __CONFIG ser du om du dels kollar
sista delen av P16F628A.INC, dels läser rellevant del i databladet.
Så om du först läser på i databladet och sedan frågar om det som då
fortfarande är oklart, så fixar vi det då.
Jätte bra att hela Xwisp2 loggen är med !
Men även ditt kommando hade varit bra.
Från loggen :
> File B452-1.Hex loaded
Är detta *ditt* program ??? Det låter som ett av blink-a-LED programmen
från VOTI. Dessutom till *HELT* fel processor ! Den koden kan inte
köras alls i en F628A...
Jag kollade lite snabbt på tutorialen, och den är säkert bra, men...
Man kan säkert använda sidan för att få en introduktion till
PIC arkitekturen och programmering, men det kan vara lite svårt
att bara kopiera en kodsnutt utan att sätta sig in i detaljerns så
att man kan anpassa det till sin processor m.m.
Sen är det lite konstigt att du säger att du har tagit exempel från
tutorial sidan, ÄNDÅ saknade ditt första program LIST/INCLUDE
direktiven !! De är ju med i alla exempel på sidan !? Varför
saknades de i din "kopia" ?
Sen har du säkert vid det här laget redan noterat att exempeln
från sidan är skrivna i "absolut mode", så ska de köras as-is
med MPLAB konfig enligt min websida, så får du bara plocka
bort LKR filen från projektet.
*Vad* du skall sätta där beror på hur processorn ska "köras".
Med eller utan kristall o.s.v.
*Hur* du ska sätta upp __CONFIG ser du om du dels kollar
sista delen av P16F628A.INC, dels läser rellevant del i databladet.
Så om du först läser på i databladet och sedan frågar om det som då
fortfarande är oklart, så fixar vi det då.
Jätte bra att hela Xwisp2 loggen är med !
Men även ditt kommando hade varit bra.
Från loggen :
> File B452-1.Hex loaded
Är detta *ditt* program ??? Det låter som ett av blink-a-LED programmen
från VOTI. Dessutom till *HELT* fel processor ! Den koden kan inte
köras alls i en F628A...
Jag kollade lite snabbt på tutorialen, och den är säkert bra, men...
Man kan säkert använda sidan för att få en introduktion till
PIC arkitekturen och programmering, men det kan vara lite svårt
att bara kopiera en kodsnutt utan att sätta sig in i detaljerns så
att man kan anpassa det till sin processor m.m.
Sen är det lite konstigt att du säger att du har tagit exempel från
tutorial sidan, ÄNDÅ saknade ditt första program LIST/INCLUDE
direktiven !! De är ju med i alla exempel på sidan !? Varför
saknades de i din "kopia" ?
Sen har du säkert vid det här laget redan noterat att exempeln
från sidan är skrivna i "absolut mode", så ska de köras as-is
med MPLAB konfig enligt min websida, så får du bara plocka
bort LKR filen från projektet.
Hej igen. Jag har nu försökt sätta "rätt" värden i __config. Men jag vet inte vad allting betyder. Det jag vill göra är att få en LED att blinka. Vad behöver jag då? Jag har en 20mhtz kristall så därför satte jag _XT_OSC annars så vet jag inte hur jag skall göra.
Här är alla jag behöver hjälp med att förstå:
Det var mitt program, jag hade bara kopierat logen ifrån din hemsida sodjan för jag inte orkade skriva hela, men jag glömde ersätta filnamnet. Mitt var test.hex. Jag kommer inte ihåg kommandot, men jag tror att det var:
xwisp2w C:\test.hex
EDIT: Finns det någon lista på alla instruktioner. Jag tycker de borde finnas på microchips hemsida, men jag kunde inte hitta något.
EDIT 2: Jag har skrivit enligt följande:
Men när jag kör Build all så säger den att den inte hittar 16f628a.asm. Men för det första är det inte 16f628a.inc som den skall ha och skall jag skriva hela sökvägen till filen, eller skall jag lägga till den i projektet på något sätt?
Här är alla jag behöver hjälp med att förstå:
Kod: Markera allt
_BODEN_ON EQU H'3FFF' ;Backwards compatability to 16F62X
_BOREN_ON EQU H'3FFF'
_CP_ON EQU H'1FFF'
_DATA_CP_ON EQU H'3EFF'
_PWRTE_OFF EQU H'3FFF'
_WDT_ON EQU H'3FFF'
_LVP_ON EQU H'3FFF'
_MCLRE_ON EQU H'3FFF'
_RC_OSC_CLKOUT EQU H'3FFF'
_RC_OSC_NOCLKOUT EQU H'3FFE'
_ER_OSC_CLKOUT EQU H'3FFF' ;Backwards compatability to 16F62X
_ER_OSC_NOCLKOUT EQU H'3FFE' ;Backwards compatability to 16F62X
_INTOSC_OSC_CLKOUT EQU H'3FFD'
_INTOSC_OSC_NOCLKOUT EQU H'3FFC'
_INTRC_OSC_CLKOUT EQU H'3FFD' ;Backwards compatability to 16F62X
_INTRC_OSC_NOCLKOUT EQU H'3FFC' ;Backwards compatability to 16F62X
_EXTCLK_OSC EQU H'3FEF'
_HS_OSC EQU H'3FEE'
_LP_OSC EQU H'3FEC'
xwisp2w C:\test.hex
EDIT: Finns det någon lista på alla instruktioner. Jag tycker de borde finnas på microchips hemsida, men jag kunde inte hitta något.
EDIT 2: Jag har skrivit enligt följande:
Kod: Markera allt
list p=16f628a
#include <16f628a>
kalf: >Det var mitt program, jag hade bara kopierat logen ifrån din hemsida sodjan för jag inte orkade skriva hela
Det är bättre att kopiera och klistra in så det blir exakt. Du kan högerklicka på konsollfönstret och välja markera och sedan dra pilen och markera den text du vill ha. Sedan måste du högerklicka igen för att kopiera den, sen är det bara att klistra in.
Risken är att man missar något när man skriver av.
Instruktioner och datablad finns på microchips hemsida. Datablad för 16f628a har du här: http://ww1.microchip.com/downloads/en/D ... 40044D.pdf
Annars kan du söka via deras sökfunktion här: http://www.microchip.com/stellent/idcpl ... odeId=2046
Testa att lägga till din .inc - fil till projektet i projektfönstret under "header files".
Mats
Det är bättre att kopiera och klistra in så det blir exakt. Du kan högerklicka på konsollfönstret och välja markera och sedan dra pilen och markera den text du vill ha. Sedan måste du högerklicka igen för att kopiera den, sen är det bara att klistra in.
Risken är att man missar något när man skriver av.
Instruktioner och datablad finns på microchips hemsida. Datablad för 16f628a har du här: http://ww1.microchip.com/downloads/en/D ... 40044D.pdf
Annars kan du söka via deras sökfunktion här: http://www.microchip.com/stellent/idcpl ... odeId=2046
Testa att lägga till din .inc - fil till projektet i projektfönstret under "header files".
Mats
>Testa att lägga till din .inc - fil till projektet i projektfönstret under "header files".
Jag gjorde det, men jag få fortfarande samma fel.
Error loggen är följande:
Och koden ser ut som följande:
Jag gjorde det, men jag få fortfarande samma fel.
Error loggen är följande:
Kod: Markera allt
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "my_first_program.asm" /l"my_first_program.lst" /e"my_first_program.err" /o"my_first_program.o"
Error[105] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 11 : Cannot open file (Include File "16F628A.ASM" not found)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 13 : Symbol not previously defined (_PWRTE_ON)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 13 : Symbol not previously defined (_XT_OSC)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 16 : Symbol not previously defined (STATUS)
Error[152] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 16 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 17 : Executable code and data must be defined in an appropriate section
Message[305] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 18 : Using default destination of 1 (file).
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 18 : Symbol not previously defined (TRISA)
Error[152] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 18 : Executable code and data must be defined in an appropriate section
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 19 : Symbol not previously defined (STATUS)
Error[152] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 19 : Executable code and data must be defined in an appropriate section
Error[152] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 21 : Executable code and data must be defined in an appropriate section
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 22 : Symbol not previously defined (PORTA)
Error[152] C:\DOCUMENTS AND SETTINGS\ADMINISTRATöR\MINA DOKUMENT\MY_FIRST_PROGRAM.ASM 22 : Executable code and data must be defined in an appropriate section
Halting build on first failure as requested.
BUILD FAILED: Thu Apr 13 00:46:09 2006
Kod: Markera allt
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ;
; Program: My_first_program ;
; Date: 2006-04-12 ;
; Processor: PIC16F628A ;
; Version: 1.0 ;
; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
list p=16f628a
#include <16F628A>
__config _PWRTE_ON & _XT_OSC ; Behöver mer info
bsf STATUS,5
movlw 00h
movf TRISA
bcf STATUS,5
START movlw 02h
movwf PORTA
END