En lite anorlunda blik kod

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
tecno
Inlägg: 27260
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Inlägg av tecno »

Ja det är till och ha blandat äpplen och päron :shock:

8051 är inte PIC


/// Marta hann visst före
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

Men tydligen är arkitekturen så liknande att man kan göra en crosscompiler

Se:
http://elektronikforumet.com/forum/view ... light=8051

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

Inlägg 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...
Alex_k
Inlägg: 43
Blev medlem: 6 oktober 2008, 16:25:37
Ort: stockholm

Inlägg av Alex_k »

tack för eran starka reaktion :wink: 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!
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

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

Inlägg av sodjan »

Du kan börja med att berätta vilken kod det handlar om.
Var finns den ?
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

Jag fick uppfattningen att han avsåg:
http://www.pjrc.com/tech/8051/board5/blink_as31.html
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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..."
Alex_k
Inlägg: 43
Blev medlem: 6 oktober 2008, 16:25:37
Ort: stockholm

Inlägg av Alex_k »

Jag menade filen som fanns på skivan från microchip. Den filen som jag inte kunde öpppna.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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" ?
Alex_k
Inlägg: 43
Blev medlem: 6 oktober 2008, 16:25:37
Ort: stockholm

Ja!!!

Inlägg av Alex_k »

Jag testade att ladda ner ett till exemplar från cdn och det fungerade!! :D
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 :wink:
Alex_k
Inlägg: 43
Blev medlem: 6 oktober 2008, 16:25:37
Ort: stockholm

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

Inlägg 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...
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg 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.
Alex_k
Inlägg: 43
Blev medlem: 6 oktober 2008, 16:25:37
Ort: stockholm

Inlägg 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?
Skriv svar