ASM för svårt för mig...
Jag vill också bättre på min inläggsstatistik här:
OM du vill använda en form av högnivåspråk vill jag avråda från BASIC och dess varianter, ta C, Pascal eller annat vettigt.
Men just PIC är effektivast med ASM, snabblärt och enkel.
Och databladet för den grej man håller på med är livsviktig, på den Fujitsu processor jag använder mycket är hårdvarumanualen på 564 sidor, programmeringsmanualen på 336 och sedan är det lite addendum, application notes osv.
Gissa varför jag köpte en laserskrivare som kan skriva dubbelsidigt.....
OM du vill använda en form av högnivåspråk vill jag avråda från BASIC och dess varianter, ta C, Pascal eller annat vettigt.
Men just PIC är effektivast med ASM, snabblärt och enkel.
Och databladet för den grej man håller på med är livsviktig, på den Fujitsu processor jag använder mycket är hårdvarumanualen på 564 sidor, programmeringsmanualen på 336 och sedan är det lite addendum, application notes osv.
Gissa varför jag köpte en laserskrivare som kan skriva dubbelsidigt.....
sodjan: ok ska läsaigenom det så se om det kommer lite nya frågor..
Jo en redan nu. Måste Wisp628 vara inkopplad efter att man har skickat över koden? För min blik a led funkar bra så länge den gula kablen är på MCRL.
Hittade vad felet var:
This pin is used to erase the memory locations inside the PIC (i.e. when we want to re-program it). In normal use it is connected to the positive supply rail.
Icecap: Lite och läsa då
Jag har jobbat mycket med C men vad för kompelator ska jag använda?
Jo en redan nu. Måste Wisp628 vara inkopplad efter att man har skickat över koden? För min blik a led funkar bra så länge den gula kablen är på MCRL.
Hittade vad felet var:

This pin is used to erase the memory locations inside the PIC (i.e. when we want to re-program it). In normal use it is connected to the positive supply rail.
Icecap: Lite och läsa då

Senast redigerad av Logan 26 augusti 2005, 16:53:04, redigerad totalt 1 gång.
Ja, Wisp628 kan vara inkopplad efter att koden är överskickad.
Wisp628 sätter MCLR "hög" (så att processorn körs) och övriga
kablar i högimpedansläge, så i princip kopplas de bort.
Det är det som är finessen med ICSP (In Curcuit Serial Programming).
Om du vill köra utan Wisp628 inkopplad, så gäller det
som sägs i datablad om MCLR och enentuella andra pinnar.
Normalt sätt finns det ingen anledning att koppla bort Wisp628'an
innan allt är klart och fungerar som det ska.
Sätt ett 10 kohm motstånd mellan MCLR och +5V, så spelar det ingen
roll om du kör med eller utan Wisp628 ansluten...
Wisp628 sätter MCLR "hög" (så att processorn körs) och övriga
kablar i högimpedansläge, så i princip kopplas de bort.
Det är det som är finessen med ICSP (In Curcuit Serial Programming).
Om du vill köra utan Wisp628 inkopplad, så gäller det
som sägs i datablad om MCLR och enentuella andra pinnar.
Normalt sätt finns det ingen anledning att koppla bort Wisp628'an
innan allt är klart och fungerar som det ska.
Sätt ett 10 kohm motstånd mellan MCLR och +5V, så spelar det ingen
roll om du kör med eller utan Wisp628 ansluten...
Men Ctrl-F funkar ju inte på papper...Icecap skrev:Och databladet för den grej man håller på med är livsviktig, på den Fujitsu processor jag använder mycket är hårdvarumanualen på 564 sidor, programmeringsmanualen på 336 och sedan är det lite addendum, application notes osv.
Gissa varför jag köpte en laserskrivare som kan skriva dubbelsidigt.....
När man väl har vant sig av från pappersbläddrandet är approachen med omedelbar fritextsökning överlägsen.
Tycker jag.
Undantaget är rent utbildningsmaterial när man går på kurser, då måste man ha bok, så man kan anteckna lärarens smarta kommentarer och tillägg i marginalerna...
Kolla högnivås språk för pic C, Pascal, Basic tror att C & PascalLogan skrev:sodjan: ok ska läsaigenom det så se om det kommer lite nya frågor..
Jo en redan nu. Måste Wisp628 vara inkopplad efter att man har skickat över koden? För min blik a led funkar bra så länge den gula kablen är på MCRL.
Hittade vad felet var:![]()
This pin is used to erase the memory locations inside the PIC (i.e. when we want to re-program it). In normal use it is connected to the positive supply rail.
Icecap: Lite och läsa dåJag har jobbat mycket med C men vad för kompelator ska jag använda?
har stöd för inlineASM så att man kan programmera ASM i själva
högnivå språket.
Hittade en mycket bättre pic sida
http://www.mstracey.btinternet.co.uk/pi ... icmain.htm
Läste igenom de första sidorna och kan nu snart gör min egen blink a led
och databladet på var allt låg
Men nu kommer det till att jag använder en 10Hz kristall med, och där stog det inget om hur man stälde in det.
Men iallafall så har jag gjort denna kod som ska tända pinne 2
Får dessa fel:
Make: The target "C:\PIC\Kod\led.o" is out of date.
Executing: "C:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F877A "led.asm" /l"led.lst" /e"led.err" /o"led.o" /c-
Error[152] C:\PIC\KOD\LED.ASM 9 : Executable code and data must be defined in an appropriate section
Error[152] C:\PIC\KOD\LED.ASM 10 : Executable code and data must be defined in an appropriate section
Message[302] C:\PIC\KOD\LED.ASM 11 : Register in operand not in bank 0. Ensure that bank bits are correct.
Error[152] C:\PIC\KOD\LED.ASM 11 : Executable code and data must be defined in an appropriate section
Error[152] C:\PIC\KOD\LED.ASM 12 : Executable code and data must be defined in an appropriate section
Error[150] C:\PIC\KOD\LED.ASM 16 : Labels must be defined in a code or data section when making an object file
Error[152] C:\PIC\KOD\LED.ASM 16 : Executable code and data must be defined in an appropriate section
Error[152] C:\PIC\KOD\LED.ASM 17 : Executable code and data must be defined in an appropriate section
Error[151] C:\PIC\KOD\LED.ASM 18 : Operand contains unresolvable labels or is too complex
Error[152] C:\PIC\KOD\LED.ASM 18 : Executable code and data must be defined in an appropriate section
Warning[205] C:\PIC\KOD\LED.ASM 21 : Found directive in column 1. (END)
Halting build on first failure as requested.
BUILD FAILED: Fri Aug 26 18:18:26 2005
http://www.mstracey.btinternet.co.uk/pi ... icmain.htm
Läste igenom de första sidorna och kan nu snart gör min egen blink a led

och databladet på var allt låg
Men nu kommer det till att jag använder en 10Hz kristall med, och där stog det inget om hur man stälde in det.
Men iallafall så har jag gjort denna kod som ska tända pinne 2
Kod: Markera allt
;****Ställer in Constants****
STATUS equ 03h
TRISA equ 85h
PORTA equ 05h
;****Ställer in portarna****
bsf STATUS,5
movlw 00h
movwf TRISA
bcf STATUS,5
;****Startar programet****
Start movlw 02h
movwf PORTA
goto Start
;****Avlutar programet****
End
Make: The target "C:\PIC\Kod\led.o" is out of date.
Executing: "C:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F877A "led.asm" /l"led.lst" /e"led.err" /o"led.o" /c-
Error[152] C:\PIC\KOD\LED.ASM 9 : Executable code and data must be defined in an appropriate section
Error[152] C:\PIC\KOD\LED.ASM 10 : Executable code and data must be defined in an appropriate section
Message[302] C:\PIC\KOD\LED.ASM 11 : Register in operand not in bank 0. Ensure that bank bits are correct.
Error[152] C:\PIC\KOD\LED.ASM 11 : Executable code and data must be defined in an appropriate section
Error[152] C:\PIC\KOD\LED.ASM 12 : Executable code and data must be defined in an appropriate section
Error[150] C:\PIC\KOD\LED.ASM 16 : Labels must be defined in a code or data section when making an object file
Error[152] C:\PIC\KOD\LED.ASM 16 : Executable code and data must be defined in an appropriate section
Error[152] C:\PIC\KOD\LED.ASM 17 : Executable code and data must be defined in an appropriate section
Error[151] C:\PIC\KOD\LED.ASM 18 : Operand contains unresolvable labels or is too complex
Error[152] C:\PIC\KOD\LED.ASM 18 : Executable code and data must be defined in an appropriate section
Warning[205] C:\PIC\KOD\LED.ASM 21 : Found directive in column 1. (END)
Halting build on first failure as requested.
BUILD FAILED: Fri Aug 26 18:18:26 2005
> "Hittade en mycket bättre pic sida"
Bättre än vadå ?
Jag har kollat runt lite, och tyvärr är den inget vidare, vilket sysns på din kodsnutt du har lagt med. Så snabbt går det att lära sig dålig kodning !
Jag har lagt in lite komentarer nedan.
> "och databladet på var allt låg"
Kan du skriva om det så att går att förstå ?
> "jag använder en 10Hz kristall"
Tror jag inte. 10 Mhz kanske...
> "och där stog det inget om hur man stälde in det."
Var är "där" ? På sidan du hittade eller i databladet ?
Och nu äöver till din kod :
> "TRISA equ 85h "
Alla SFRs är definierade i den processor specifika inklude filen. T.ex för 16F84A (fast man ska inte använda den) heter den P16F84A.INC. Definierade aldrig upp register själv med EQU !
Felen nedan beror på att du försöker bygga en "absolute mode" kod i "relocatable mode". Du har alltså lagt till en LNK fil i ditt projekt. Du kan antingen plocka bort LNK filen från projektet, eller (bättre!) skriva koden rätt.
Ditt exempel nedan skulle t.ex kunna se ut så här :
Bygger OK i MPLAB, men naturligtsvis inte testat på hårdvaran...
Bättre än vadå ?
Jag har kollat runt lite, och tyvärr är den inget vidare, vilket sysns på din kodsnutt du har lagt med. Så snabbt går det att lära sig dålig kodning !

Jag har lagt in lite komentarer nedan.
> "och databladet på var allt låg"
Kan du skriva om det så att går att förstå ?
> "jag använder en 10Hz kristall"
Tror jag inte. 10 Mhz kanske...
> "och där stog det inget om hur man stälde in det."
Var är "där" ? På sidan du hittade eller i databladet ?
Och nu äöver till din kod :
> "TRISA equ 85h "
Alla SFRs är definierade i den processor specifika inklude filen. T.ex för 16F84A (fast man ska inte använda den) heter den P16F84A.INC. Definierade aldrig upp register själv med EQU !
Felen nedan beror på att du försöker bygga en "absolute mode" kod i "relocatable mode". Du har alltså lagt till en LNK fil i ditt projekt. Du kan antingen plocka bort LNK filen från projektet, eller (bättre!) skriva koden rätt.
Ditt exempel nedan skulle t.ex kunna se ut så här :
Kod: Markera allt
list p=16F877A
#include "p16f877a.inc"
__config _cp_off & _debug_off & _wrt_off & _cpd_off & _boden_off & _pwrte_off & _wdt_off & _hs_osc
main code
bsf STATUS, RP0 ; Till Bank 1
movlw 00h
movwf TRISA ; Hela PORTA = output.
bcf STATUS, RP0 ; Tillbaka till Bank 0
bsf PORTA, 2 ; "Sätt" bit 2 i PORTA.
loop
goto loop ; Loop..........
end
Senast redigerad av sodjan 26 augusti 2005, 20:05:48, redigerad totalt 1 gång.
Okej, kanske det inte var den bästa sida då...
Det jag menade med "och databladet på var allt låg" eftersom i den kod jag skrev så skulle man sätta att STATUS equ 03h och då kollade jag upp i databladet för PIC om det var 03h på STATUS.
10 Mhz Var det ja men bra att du förstog vad jag menade i allafall.
Vissa saker jag inte förstog i koden:
1. "__config _cp_off & _pwrte_off & _wdt_off & _hs_osc"
2. RP0
Testade koden men fick lite fel, tror det beror på att den inte hittar "p16f877a.inc"
Make: The target "C:\PIC\Kod\test.o" is out of date.
Executing: "C:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F877A "test.asm" /l"test.lst" /e"test.err" /c-
Warning[205] C:\PIC\KOD\TEST.ASM 1 : Found directive in column 1. (LIST)
Error[105] C:\PIC\KOD\TEST.ASM 3 : Cannot open file (Include File "16F877a.inc" not found)
Error[113] C:\PIC\KOD\TEST.ASM 5 : Symbol not previously defined (_CP_OFF)
Error[113] C:\PIC\KOD\TEST.ASM 5 : Symbol not previously defined (_PWRTE_OFF)
Error[113] C:\PIC\KOD\TEST.ASM 5 : Symbol not previously defined (_WDT_OFF)
Error[113] C:\PIC\KOD\TEST.ASM 5 : Symbol not previously defined (_HS_OSC)
Error[149] C:\PIC\KOD\TEST.ASM 7 : Directive only allowed when generating an object file
Error[113] C:\PIC\KOD\TEST.ASM 9 : Symbol not previously defined (STATUS)
Error[113] C:\PIC\KOD\TEST.ASM 9 : Symbol not previously defined (RP0)
Error[113] C:\PIC\KOD\TEST.ASM 11 : Symbol not previously defined (TRISA)
Error[113] C:\PIC\KOD\TEST.ASM 12 : Symbol not previously defined (STATUS)
Error[113] C:\PIC\KOD\TEST.ASM 12 : Symbol not previously defined (RP0)
Error[113] C:\PIC\KOD\TEST.ASM 14 : Symbol not previously defined (PORTA)
Halting build on first failure as requested.
BUILD FAILED: Fri Aug 26 19:49:46 2005
Det jag menade med "och databladet på var allt låg" eftersom i den kod jag skrev så skulle man sätta att STATUS equ 03h och då kollade jag upp i databladet för PIC om det var 03h på STATUS.
10 Mhz Var det ja men bra att du förstog vad jag menade i allafall.
Vissa saker jag inte förstog i koden:
1. "__config _cp_off & _pwrte_off & _wdt_off & _hs_osc"
2. RP0
Testade koden men fick lite fel, tror det beror på att den inte hittar "p16f877a.inc"
Make: The target "C:\PIC\Kod\test.o" is out of date.
Executing: "C:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F877A "test.asm" /l"test.lst" /e"test.err" /c-
Warning[205] C:\PIC\KOD\TEST.ASM 1 : Found directive in column 1. (LIST)
Error[105] C:\PIC\KOD\TEST.ASM 3 : Cannot open file (Include File "16F877a.inc" not found)
Error[113] C:\PIC\KOD\TEST.ASM 5 : Symbol not previously defined (_CP_OFF)
Error[113] C:\PIC\KOD\TEST.ASM 5 : Symbol not previously defined (_PWRTE_OFF)
Error[113] C:\PIC\KOD\TEST.ASM 5 : Symbol not previously defined (_WDT_OFF)
Error[113] C:\PIC\KOD\TEST.ASM 5 : Symbol not previously defined (_HS_OSC)
Error[149] C:\PIC\KOD\TEST.ASM 7 : Directive only allowed when generating an object file
Error[113] C:\PIC\KOD\TEST.ASM 9 : Symbol not previously defined (STATUS)
Error[113] C:\PIC\KOD\TEST.ASM 9 : Symbol not previously defined (RP0)
Error[113] C:\PIC\KOD\TEST.ASM 11 : Symbol not previously defined (TRISA)
Error[113] C:\PIC\KOD\TEST.ASM 12 : Symbol not previously defined (STATUS)
Error[113] C:\PIC\KOD\TEST.ASM 12 : Symbol not previously defined (RP0)
Error[113] C:\PIC\KOD\TEST.ASM 14 : Symbol not previously defined (PORTA)
Halting build on first failure as requested.
BUILD FAILED: Fri Aug 26 19:49:46 2005
> "sätta att STATUS equ 03h"
Just det, det är det man inte ska göra !
> "p16f877a.inc"
OK, jag fick för mig att det var en F84A som du byggde för.
Jag har ändrat till exemplet i förra inlägget.
> "1. "__config _cp_off & _pwrte_off & _wdt_off & _hs_osc""
OBS ! Ändrad till 16F877A i min kod nedan !
Se : CONFIG delen i databladet och slutet på P16F877A.INC för förklaringar.
> "2. RP0"
Se beskrivningen av STATUS registret i databladet och RP0 i P16F877A.INC.
> "Warning[205] C:\PIC\KOD\TEST.ASM 1 : Found directive in column 1. (LIST)"
"list" skall inte stå i col 1, kolla din kod !
Resten är nog bara följdfel...
Just det, det är det man inte ska göra !
> "p16f877a.inc"
OK, jag fick för mig att det var en F84A som du byggde för.
Jag har ändrat till exemplet i förra inlägget.
> "1. "__config _cp_off & _pwrte_off & _wdt_off & _hs_osc""
OBS ! Ändrad till 16F877A i min kod nedan !
Se : CONFIG delen i databladet och slutet på P16F877A.INC för förklaringar.
> "2. RP0"
Se beskrivningen av STATUS registret i databladet och RP0 i P16F877A.INC.
> "Warning[205] C:\PIC\KOD\TEST.ASM 1 : Found directive in column 1. (LIST)"
"list" skall inte stå i col 1, kolla din kod !
Resten är nog bara följdfel...
Jo, men "list" skall inte stå först på raden, utan en bit in.
Minst ett mellenslag, men man brukar försöka hålla saker rakt och snyggt.
Det är lite konstigt, när jag tittar på mitt kodexempel här ovan, så ligger "list" en bra bit in på raden. Gör det inte det i din browser ?
De rader som skall ligga först på sin rad i exemplet är "#include", "main" och "loop", resten måste vara minst ett mellanslag in på raden (men oftast lägger med det en bit in så att det blir rakt och snyggt).
Att man har detta fel ser man på att man får "Warning[205]" som du fick. Oftast ger detta en massa följdfel, som du också fick.
Minst ett mellenslag, men man brukar försöka hålla saker rakt och snyggt.
Det är lite konstigt, när jag tittar på mitt kodexempel här ovan, så ligger "list" en bra bit in på raden. Gör det inte det i din browser ?
De rader som skall ligga först på sin rad i exemplet är "#include", "main" och "loop", resten måste vara minst ett mellanslag in på raden (men oftast lägger med det en bit in så att det blir rakt och snyggt).
Att man har detta fel ser man på att man får "Warning[205]" som du fick. Oftast ger detta en massa följdfel, som du också fick.
> "Din ändring hjälpte inte så mycket samma fel som förut, men nu hittar den inc filen iallafall. "
Någonting stämmer inte här.
Om MPASM nu *hittar* INC filen, så borde du inte få "samma fel som förut", kan du förtydliga ! T.ex alla "Error[113]". Visa vilka fel du får *nu*.
> "Det som börjar i första bokstav på en rad uppfattar kompilern som ett label, är det minst 1 blanksteg uppfattas det som kommandon."
Det är lite rörigt...
Directivet "list" t.ex måste stå minst ett steg in på raden.
Directivet "#include" verkar kunna stå både först och längre in på raden.
Vanligtsvis ser man direktiven #include, #define och #undefine först på raden...
Jag ser ingen tydlig logik i det, men om bara fel- och varnings-meddelanderna försvinner så är väll allt bra...

Någonting stämmer inte här.
Om MPASM nu *hittar* INC filen, så borde du inte få "samma fel som förut", kan du förtydliga ! T.ex alla "Error[113]". Visa vilka fel du får *nu*.
> "Det som börjar i första bokstav på en rad uppfattar kompilern som ett label, är det minst 1 blanksteg uppfattas det som kommandon."
Det är lite rörigt...
Directivet "list" t.ex måste stå minst ett steg in på raden.
Directivet "#include" verkar kunna stå både först och längre in på raden.
Vanligtsvis ser man direktiven #include, #define och #undefine först på raden...
Jag ser ingen tydlig logik i det, men om bara fel- och varnings-meddelanderna försvinner så är väll allt bra...


Hej igen, nu har jag testat mig fram men får det inte att funka även med mellanslag och allt 
Detta får jag som fel, samma som förut....

Detta får jag som fel, samma som förut....
Kod: Markera allt
Make: The target "C:\PIC\Kod\3321.o" is out of date.
Executing: "C:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F877A "3321.asm" /l"3321.lst" /e"3321.err"
Error[113] C:\PIC\KOD\3321.ASM 5 : Symbol not previously defined (_cp_off)
Error[113] C:\PIC\KOD\3321.ASM 5 : Symbol not previously defined (_debug_off)
Error[113] C:\PIC\KOD\3321.ASM 5 : Symbol not previously defined (_wrt_off)
Error[113] C:\PIC\KOD\3321.ASM 5 : Symbol not previously defined (_cpd_off)
Error[113] C:\PIC\KOD\3321.ASM 5 : Symbol not previously defined (_boden_off)
Error[113] C:\PIC\KOD\3321.ASM 5 : Symbol not previously defined (_pwrte_off)
Error[113] C:\PIC\KOD\3321.ASM 5 : Symbol not previously defined (_wdt_off)
Error[113] C:\PIC\KOD\3321.ASM 5 : Symbol not previously defined (_hs_osc)
Error[149] C:\PIC\KOD\3321.ASM 7 : Directive only allowed when generating an object file
Message[302] C:\PIC\KOD\3321.ASM 11 : Register in operand not in bank 0. Ensure that bank bits are correct.
Halting build on first failure as requested.
BUILD FAILED: Sat Aug 27 21:20:50 2005