Bygga en miniräknare

Planering och tankar kring eventuella framtida projekt.
Newi
Inlägg: 15
Blev medlem: 20 januari 2007, 20:21:36
Ort: Järfälla

Inlägg av Newi »

Tack för tipset!

Så sent som igår och idag satt jag och pulade med MPLAB, och försökte göra lite olika testprogram som jag hittade på olika hemsidor och manualer. Eftersom jag inte riktigt förstod hur själva fil-strukturen fungerade i C, med header-filer och source-filer osv, så var det inte förrän idag som jag fick testprogrammet för C att fungera.

Nu har jag dock två olika "grunder" till PICF452, en för Assembler och en för C. (Med grund menar jag typ ett program som blinkar en lampa och som fungerar att kompilera, så jag i alla fall har någonting att bygga vidare ifrån.)

Eftersom jag inte har börjat lära mig någon direkt kod ännu så kan jag precis lika lite C som Assembler, och jag har börjat tvivla på att C är det lättaste att börja med som nybörjare. Vilket språk tycker ni att jag ska välja? Båda språken är precis lika främmande, och jag har ungefär 1,5 vecka ledigt från skolan och efter det ska i princip projektet vara färdigt. Kommer förmodligen inte bli färdig i tid, men jag nöjer mig med att komma så långt jag hinner, jag har i alla fall hittils arbetat ihop ungefär 50 timmar.

Hjälp mig välja språk nu så jag kan klara det här! :lol:
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Vill ni köra i assembler så kan jag varmt rekomendera denna sida:
http://www.mstracey.btinternet.co.uk/pi ... icmain.htm

Trevligt web-design kanske men det är en riktig skit-kod som siten lär ut !

Det är inte det att den använder en gammal PIC (det gör inte
så där väldigt mycket och det gör nästan alla liknande tutorials
i alla fall), det är *hur* de skriver koden. Jag orkar inte räkna upp
allt nu, men ta inte koden allt för seriöst. Jag har även kommenterat
en hel del av det i en annan tråd startad av Rocky_AL.
Newi
Inlägg: 15
Blev medlem: 20 januari 2007, 20:21:36
Ort: Järfälla

Inlägg av Newi »

Ok, det var synd för jag tycker det var en väldigt bra guide, men jag kan ju dock inte skilja på bra kod och dålig kod. Den var i alla fall skriven på en lätt nivå och den lärde ut vad kommandona utförde på ett bra sätt.

Du har ingen länk till någon liknande guide fast som lär ut bättre kod?
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Denna anses väl allmänt som vara rellativt bra (jämfört med mycket annat skräp) :

http://www.amqrp.org/elmer160/lessons/
Newi
Inlägg: 15
Blev medlem: 20 januari 2007, 20:21:36
Ort: Järfälla

Inlägg av Newi »

Tack för tipset till guiden.

Nu håller vi på att försöka testa programmeraren, men det är något som är galet. Vi är ganska säkra på att allt är rätt kopplat och så, men vi får ändå detta felmeddelande:

XWisp2 version 1.6.01 (Aug 14 2005, Open Watcom C 1.30)
File B452-1.Hex loaded and is Intel Hex format conforming
SendReceiveSlow read timeout
Failed to activate Wbus device
XWisp2 failed after 1.09 seconds, rc 23!

Det ser ju ut ungefär som felmeddelandet för när man har ställt in fel port, fast vi har ställt in rätt port. Vi har även använt hex-filen som är med i testexemplet bara för att prova. Vi är inte helt säkra på att allt är kopplat rätt i labbplattan, men vi har följt kopplingsschemat som finns här.

http://www.voti.nl/blink/pics/b-877-150.gif

Kan det vara något som är felkopplat som ger det felmeddelandet vi fick, eller vad kan vara felet?

Edit. Har PIC18F452 en inbyggd oscillator?
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

PC programmet (XWisp2) får inte kontakt med programmeraren (Wisp628).

Kan vara felkopplat, fel port eller något liknande.
Eller att Wisp628 inte har någon 5V (vanligt slarv-fel...)
Användarvisningsbild
Tengil
Inlägg: 84
Blev medlem: 24 mars 2007, 00:15:46
Ort: Hudiksvall

Inlägg av Tengil »

Häftigt projekt! Men räkna med att ni kommer behöva offra mer än 100h för att lära er elektronik, programmering, mikrokontrollers etc. Men ftersom elektronik är så roligt så är det kanske inte en sån stor uppoffring eller hur? ;)

Har ni skaffat kringkomponenter så som motstånd, kondingar och spänningsregulatorer?
Användarvisningsbild
nole
Inlägg: 651
Blev medlem: 10 januari 2006, 12:18:00
Ort: Borlänge

Inlägg av nole »

Ni kommer ju att ha något som väljer om det är - + * / som skall användas man kan ju rent teoretiskt låta tex * välja + - * / baserat på hur många gånger man trycker på den. eller att den skiftar 1-9 mellan att vara funktions tangenter och vara siffer tangenter bara en tanke som slog mig

Kul projekt :)
Newi
Inlägg: 15
Blev medlem: 20 januari 2007, 20:21:36
Ort: Järfälla

Inlägg av Newi »

sodjan: Förmodligen var det något med spänningen som var galet, det är inte min del av projektet dock men vi ska göra ett nytt försök imorgon och jag tror att vi kommer ha bättre koll då.

Tengil: Jo förmodligen kommer det att behövas mer än 100 timmar, men tyvärr kom vi igång lite sent med projektet så vi kommer nog inte hinna arbeta så mycket även om vi skulle vilja. Vi kommer med största säkerhet inte lyckas så bra som vi trodde från början, men vi ska i alla fall försöka få något sorts räknarprogram att fungera även om vi kanske kommer att behöva tänka om lite. Vad det gäller betyget på projektet så är det ju dock vägen dit som räknas så det gör inte så mycket om vi inte blir färdiga, utan det kanske blir något att fortsätta pyssla med på fritiden sedan :P

Några andra komponenter har vi faktiskt inte köpt, och vi visste inte riktigt att något annat behövdes, eller hur man skulle veta vad som behövdes. Den grundläggande elektronikkunskapen är nog helt klart det som är sämst hos oss alla i gruppen. Idag fick vi dock låna en "Digital Trainer" av skolan som innehöll en labbplatta samt en del olika komponenter som var kopplade till den. Jag vet inte om det som vi kan tänkas behöva finns där, men risken är väl att vi saknar en del prylar.

nole: Att ha någon knapp som ändrar funktionen på dom andra knapparna hade vi redan tänkt på. Det andra förslaget var dock intressant, men tyvärr så kommer vi förmodligen inte hinna göra så många andra funktioner så vi kommer nog att klara oss på dom 16 knappar vi har, utan några knep. Det kan ju dock vara något att tänka på om man vill arbeta vidare med miniräknaren senare.
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Förmodligen var det något med spänningen som var galet,...

Hm.
Jag har fått flera "felrapporter" kring Wisp628 där man helt enkelt
trodde att den fick sin matning via RS232 interfacet. Så är det alltså
inte.

Wisp628 tar sin 5V matning från målmiljön, den behöver ju i alla fall
5V för att kunna programmeras...
Rocky_AL
Inlägg: 617
Blev medlem: 7 december 2006, 15:14:50
Ort: Stockholm

Inlägg av Rocky_AL »

Är det så att man bara behöver ha +5V kopplat till vdd på sin PIC + MCLR (med 20-100KΩ resistor mellan)? Eller behövs det på fler ställen?
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Nja, om du har en 40-pinnars PIC så har den oftast *två* Vdd-pinnar.
Båda måste kopplas. Och så kopplar du 5V till Wisp628'an också.
Sedan en 100nF ker konding mellan Vdd och Vss nära mål-PIC'en...
Newi
Inlägg: 15
Blev medlem: 20 januari 2007, 20:21:36
Ort: Järfälla

Inlägg av Newi »

> Jag har fått flera "felrapporter" kring Wisp628 där man helt enkelt
> trodde att den fick sin matning via RS232 interfacet. Så är det alltså
> inte.

Det var det vi också trodde först, och det var så vi hade det kopplat när vi provade igår, så det förklarar varför det inte fungerade.

Ska skicka vidare det som skrevs här till killen som sköter byggandet och kopplandet, så borde vi nog kunna få det att fungera.
Newi
Inlägg: 15
Blev medlem: 20 januari 2007, 20:21:36
Ort: Järfälla

Inlägg av Newi »

***Problemet löst***
Har ett konstigt fel som jag får när jag använder CONFIG. Något galet måste jag ju göra men jag vet inte vad.

Har till exempel prövat att bara skapa ett i princip tomt program där jag ställer in processor, inkluderar inc-filen, gör 1 enda config-inställning och sedan bara ett program med en loop som inte gör någonting. Allting fungerar bra tills jag lägger till config-inställningen för då dyker det upp felmeddelanden på typ varenda rad kod. Såhär ser det ut i det tomma programmet till exempel:

Error[126] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 5 : Argument out of range (0007 not between 0000 and 7FFF)
Warning[226] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 5 : Destination address must be word aligned
Warning[220] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 5 : Address exceeds maximum range for this processor.
Warning[220] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 5 : Address exceeds maximum range for this processor.
Error[116] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 6 : Address label duplicated or different in second pass (Start)
Error[116] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 7 : Address label duplicated or different in second pass (Loop)
Error[126] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 8 : Argument out of range (0007 not between 0000 and 7FFF)
Warning[226] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 8 : Destination address must be word aligned
Warning[220] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 8 : Address exceeds maximum range for this processor.
Warning[220] C:\PROJEKT\TESTCONFIG\TESTCONFIG.ASM 8 : Address exceeds maximum range for this processor.
Halting build on first failure as requested.
BUILD FAILED: Thu Apr 19 12:30:02 2007

Vad fan är galet?
***Problemet löst***

EDIT: Sökte en del och fann att ett "org 0x00" löste mina problem, men upptäckte även att det verkade vara kod som inte skulle användas. Letade vidare lite till och hittade skillnaderna mellan Absolute mode och Rellocatable mode på jescab.se. Insåg då att jag hade en del gammal kod med i mitt program så jag skrev om alltihopa till Rellocatable mode, och allt fungerade fint.

Problemet löst alltså.
Skriv svar