Nybörjarfrågor.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

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.
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

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:

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.

 
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:
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

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:

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
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

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:

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

Hur skall jag definera dessa "symboler"?

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.

 
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> 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...
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Men du sodjan, jag undrar på en sak:

Att man använder CODE och UDATA har jag faktisk fattat (satt långt inne men ;-)) men om man _vill_ placera vissa värden i den del av RAM'en som inte växlas med bankningen (i PIC16F628A adress 71h och upp)... hur placerar man dom?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

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... :-)
4.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.
Alltså, genom att använda UDATA_SHR, så kommer länkaren
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)
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Tack gurun!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Guru ?? Jag har bara läst TFM... :-)

EDIT: Får ta Kalf's program senare, nu ska det visst bli film här,
"Flykten från hönsgården", låter väl passande... :-)

EDIT2: Rekomenderas, för de som inte redan har sett den. Skitkul !
Från samma killar som gjorde "Wallice and Gromit" filmerna.
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

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:

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!
Min kod ser ut som följande:

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.

 
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
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> 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.
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

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å:

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'
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:

Kod: Markera allt

list   p=16f628a
#include   <16f628a>
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?
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

***EDIT: Finns det någon lista på alla instruktioner. Jag tycker de borde finnas på microchips hemsida, men jag kunde inte hitta något. ***


Databladet, där finns alla instruktioner
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg av Kaggen »

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
Användarvisningsbild
Kalf
Inlägg: 249
Blev medlem: 5 november 2005, 09:59:45

Inlägg av Kalf »

>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:

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


Och koden ser ut som följande:

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

Skriv svar