Sida 2 av 4
Postat: 7 november 2008, 20:50:44
av tecno
Ja det är till och ha blandat äpplen och päron
8051 är inte PIC
/// Marta hann visst före
Postat: 7 november 2008, 21:07:56
av AndersG
Men tydligen är arkitekturen så liknande att man kan göra en crosscompiler
Se:
http://elektronikforumet.com/forum/view ... light=8051

Postat: 7 november 2008, 21:11:21
av sodjan
Ja jösses...

Du kan ju inte bara hugga vilken jäkla kod som helst...

Hur fasen trodde du att det *där* skulle fungera...
Postat: 7 november 2008, 21:20:21
av Alex_k
tack för eran starka reaktion

Jag kommer nog alldrig göra om det!
Så det jag ska göra är alltså att skriva koden själv eller att försöka en tredje gång med den koden från microchip. Eller finns det en annan lösning?
Tack!
Postat: 7 november 2008, 21:30:20
av AndersG
Varför inte ta algoritmen som den presenteras och översätta den till PIC kod??
Logiken är ganska enkel:
Initiera fsr till tabellen
:loop
movf indf,w
Kolla om w är noll, hoppa ut i så fall
Tryck ut w på porten
inc fsr
goto loop
I pseudokod
Postat: 7 november 2008, 21:34:57
av sodjan
Du kan börja med att berätta vilken kod det handlar om.
Var finns den ?
Postat: 7 november 2008, 22:23:48
av AndersG
Postat: 7 november 2008, 22:46:45
av sodjan
Nej, den var ju helfel och det fanns ju dessutom länk till den...
"...eller att försöka en tredje gång med den koden från microchip..."
Postat: 7 november 2008, 23:22:48
av Alex_k
Jag menade filen som fanns på skivan från microchip. Den filen som jag inte kunde öpppna.
Postat: 7 november 2008, 23:48:18
av sodjan
Äntligen ! Alltså från en CD som följde med din PICkit2.
Synd att det ska ta sådan tid att klämma fram det...
Är det samma kod som ligger på PICkit2 sidan ?
Har du provat att plocka ner ett nytt kit därifrån ?
D.v.s det dom kallas "PICkit 2 Starter Kit Lessons" ?
Ja!!!
Postat: 8 november 2008, 16:59:09
av Alex_k
Jag testade att ladda ner ett till exemplar från cdn och det fungerade!!
Tredje gången gilt! Nu kan jag öppna project filen!
men då kommer så klart den riktiga saken hur ska koden se ut?
Jag ska fundera en stund sen återkommer jag. Men om ni verkligen vill något eller ge några tips så är ni så klart välkomna

Postat: 8 november 2008, 17:37:28
av Alex_k
Jag hittade en sak på den här tråden
http://elektronikforumet.com/forum/viewtopic.php?t=2903
den koden han säger att man kan använda om man vill få en PIC 16f84a att blinka ser VÄLDIGT mycket enklare ut än min som ser ut så här:
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
cblock 0x20
Delay1 ; Define two file registers for the
Delay2 ; delay loop
endc
org 0
Start:
bsf STATUS,RP0 ; select Register Page 1
bcf TRISC,0 ; make IO Pin B.0 an output
bcf STATUS,RP0 ; back to Register Page 0
MainLoop:
bsf PORTC,0 ; turn on LED C0
OndelayLoop:
decfsz Delay1,f ; Waste time.
goto OndelayLoop ; The Inner loop takes 3 instructions per loop * 256 loopss = 768 instructions
decfsz Delay2,f ; The outer loop takes and additional 3 instructions per lap * 256 loops
goto OndelayLoop ; (768+3) * 256 = 197376 instructions / 1M instructions per second = 0.197 sec.
; call it a two-tenths of a second.
bcf PORTC,0 ; Turn off LED C0
OffDelayLoop:
decfsz Delay1,f ; same delay as above
goto OffDelayLoop
decfsz Delay2,f
goto OffDelayLoop
goto MainLoop ; Do it again...
end
men den som han skrev fungerar ju så klart inte efter som att det är en annan prossesor än vad jag använder.
Jag använder PIC 16f690 och då undrar jag hur jag ska göra för att [ALV]s kod ska fungera.
Tack!
Postat: 8 november 2008, 18:06:05
av sodjan
Använd alltid code-taggarna, den där röran är helt oläslig.
> Jag använder PIC 16f690 och då undrar jag hur jag ska göra för att [ALV]s kod ska fungera.
Det enklaste är att bara byga koden för 16F690 och sedan fixa
de fel som uppstår efter hand. MPASM brukar vara ganska tydlig
på vad som är galet.
Alternativet är att sätta sig med koden i förväg och hitta skillnaderna,
om man tycker att det är roligare...
Postat: 8 november 2008, 18:17:19
av Marta
Nu blandar Du nog igen. Den där andra tråden har en kod i BASIC, Du använder assembler.
Jag håller med om att det exempel Du har är väldigt stökigt, det kan göras både enklare och tydligare.
Postat: 8 november 2008, 20:14:18
av Alex_k
När jag testar att bygga [ALV]s kod så blir det så klart Build failed men jag vet inte vad de menar med tex Illegal opcode (PORTA.0) och Illegal character (3)
Hela medelandet ser ut så här:
----------------------------------------------------------------------
Release build of project `C:\Program\Microchip\nya\02 Blink\Blink.mcp' started.
Sat Nov 08 19:58:27 2008
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F690 "Blink.asm" /l"Blink.lst" /e"Blink.err"
Error[122] C:\PROGRAM\MICROCHIP\NYA\02 BLINK\BLINK.ASM 5 : Illegal opcode (PORTA.0)
Error[108] C:\PROGRAM\MICROCHIP\NYA\02 BLINK\BLINK.ASM 6 : Illegal character (3)
Error[122] C:\PROGRAM\MICROCHIP\NYA\02 BLINK\BLINK.ASM 7 : Illegal opcode (PORTA.0)
Error[108] C:\PROGRAM\MICROCHIP\NYA\02 BLINK\BLINK.ASM 8 : Illegal character (3)
Warning[203] C:\PROGRAM\MICROCHIP\NYA\02 BLINK\BLINK.ASM 9 : Found opcode in column 1. (GOTO)
Warning[205] C:\PROGRAM\MICROCHIP\NYA\02 BLINK\BLINK.ASM 10 : Found directive in column 1. (END)
Halting build on first failure as requested.
----------------------------------------------------------------------
Release build of project `C:\Program\Microchip\nya\02 Blink\Blink.mcp' failed.
Sat Nov 08 19:58:28 2008
----------------------------------------------------------------------
BUILD FAILED
Vet någon hur jag ska göra För att det ska fungera att bygga koden till min possesor PIC 16F690?