Pic

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Aluvi
Inlägg: 463
Blev medlem: 26 februari 2005, 19:51:32

Inlägg av Aluvi »

Är dom lika då 877A och min870?
Användarvisningsbild
tecno
Inlägg: 27252
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 »

Nu är det dags att gräva fram databladen och kolla. Du har väl databladet på din PIC tillgänglig för att läsa vad som gäller. Nedan länk till Microchip var du kan ladda ner alla databladen.

http://microchip.com/stellent/idcplg?Id ... &nodeId=74
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Är dom lika då 877A och min870?

För detta exemepl, ja, i princip...

Här är ett assembler exempel skrivet för och testat på en 16F870 :

Kod: Markera allt

;**********************************************************************
;   Enkelt blink-a-led, 16F870.                                       *
;                                                                     *
;**********************************************************************
;    Files required:  P16F870.INC                                     *
;                     16F870.LNK                                      *
;                                                                     *
;**********************************************************************


	list      p=16f870
	#include <p16f870.inc>
	
	__CONFIG _CP_OFF & _DEBUG_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _CPD_OFF & _WRT_ENABLE_OFF

RESET_VECTOR    CODE    0x000     ; processor reset vector
	    goto    start             ; go to beginning of program


INT_VECTOR      CODE    0x004     ; interrupt vector location
        goto    isr_routine       ; goto main interrupt service routine.
        

MAIN    CODE

start
        banksel adcon1
        movlw   h'06'
        movwf   adcon1            ; Stäng av ADC.

        banksel trisa
        clrf    trisa
        clrf    trisb
        clrf    trisc             ; Alla pinnar = utgångar.

        banksel t1con
        movlw   b'00110001'
        movwf   t1con             ; Se datablad...
        
        banksel pie1
        movlw   b'00000001'
        movwf   pie1              ; Enable avbrott från TMR1.

        banksel intcon	
        bsf     intcon, peie
        bsf     intcon, gie       ; Enable avbrott...

loop
        goto loop                 ; Vänta på avbrott...
 


ISR_ROUTINE  CODE

isr_routine

        banksel portb
        comf    portb            ; Blinka !!

        banksel pir1
        bcf     pir1, tmr1if     ; clear avbrotts flagga.

        retfie

		END

Om du har frågor så är det bara att återkomma !!!
Men först är det databladet och manualen till MPASM som gäller,
så klart... :-)

Notera att det är lite hastigt ihopkommet, och exemplet tar ett par
"genvägar", t.ex så bör man spara "context" i sin ISR, se databladet
för detaljer.

Ber också om ursäkt för språkblandingen...

För att bygga projektet :
- skapa ett nytt projekt.
- kopiera koden till katalogen.
- lägg till koden till "source files"
- Lägg till LNK filen till "Linker Scripts".
- Klicka för "case unsensitive" i projekt->options->MPASM
Aluvi
Inlägg: 463
Blev medlem: 26 februari 2005, 19:51:32

Inlägg av Aluvi »

Tecno: jodå jag har tagit hem databladet.

Sodjan: vad är den kåden skrivet i för språk? vad är MPASM?
Användarvisningsbild
JimmyAndersson
Inlägg: 26578
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Aluvi:
Sodjan skrev det: "Här är ett assembler exempel"

MPASM är en del av MPLAB IDE, programmeringsverktyg (i brist på bättre förklaring), tillverkat av Microchip som ju gör PIC-processorerna.

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

Inlägg av sodjan »

He he,
det verkar *lite* tidigt att fråga efter kodexemempel, du har ganska mycket att läsa på innan det är meningsfullt... :-)

Jag utgår från att du har hämtat och installerat MPLAB !? :

http://www.microchip.com/stellent/idcpl ... t=SW007002

Hämta och studera även :

http://ww1.microchip.com/downloads/en/D ... 33014J.pdf (MPASM/MPLINK user guide)

Det finns en intro-tråd här i forumet också :

http://www.elektronikforumet.com/forum/ ... php?t=3552

> MPASM är en del av MPLAB IDE...

Hm, om man ska vara korrekt, så installeras MPASM samtidigt som MPLAB,
med det är igentligen inte en *del* av MPLAB. MPLAB anropar MPASM
(och MPLINK) när man klickar "Build", men det går precis lika bra att
köra MPASM/MPLINK direkt, t.ex om man använder en annan program-
editor än MPLAB (Emacs, UltraEdit, whatever...)
Så det är separata (men integrerade) verktyg.
Loial
Inlägg: 452
Blev medlem: 21 oktober 2005, 12:22:46
Ort: Gävle

Inlägg av Loial »

Om du vill ha några enkla exempel att studera, så har mikroBasic rätt många under /examples/p16, indelade efter några vanliga PIC:ar.
Aluvi
Inlägg: 463
Blev medlem: 26 februari 2005, 19:51:32

Inlägg av Aluvi »

ok
thx för alla tipps jag får nog kompletera med att ta hem en polare som kan lite om det här, för nu börjar jag bli förvirrad :-)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Har du en vägbeskrivning ? :-)

Men, beskriv vad som är förvirrande så reder vi säkert ut det.

En sak kan vara val av "språk". Om du frågar *mig* så tycker jag att
man ska starta med ASM tills man tycker att man har "greppat" hur
PIC arkitekturen ser ut och hur den fungerar.

Sedan kan man göra som man vill, stanna med ASM därför att
man gillar den totala kontroll man får, eller köra C eller Basic
för att man har bråttom och inte tycker att man behöver ha
kontroll över allting... :-)
Aluvi
Inlägg: 463
Blev medlem: 26 februari 2005, 19:51:32

Inlägg av Aluvi »

1:Börja med MPLAB för att bygga?
Jag trodde man kunde koda, kompilera och köra direkt i Micro Basic

2:Jag tänkte programera i Basic för det har jag lite vana utav iomed att jag har programmerat i VB.

ASM är inte det mycket svårare?

När jag installerar MicroBasic så frågar den om vad som ska installeras:
PicFlash 2,0
PicFlash 1,0
Vad är det?

Jag har en polare som kör MicroPascal och han köpte en programmerare av dej Sodjan, Kan jan använda samma programvaror som han till min programerare från Elfa?
Isåfall så vore det bra för då kan jag köra samma språk som han och få hjälp IRL.
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

Jag har en polare som kör MicroPascal och han köpte en programmerare av dej Sodjan, Kan jan använda samma programvaror som han till min programerare från Elfa?
Isåfall så vore det bra för då kan jag köra samma språk som han och få hjälp IRL.

Xwisp är gjort för Wisp628 programeraren.. så tyvär.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag trodde man kunde koda, kompilera och köra direkt i Micro Basic

Jo, *OM* (och det är ett jäkla stort **OM** !!) man vill köra med Micro Basic !!!

En del (jag gissar några % av PIC användarna) gör det, betydligt fler (inkl
mig) skulle aldrig komma på tanken att använda Basic överhuvudtaget.

Du har/hade inte angivit några preferenser när det gäller språk, så
jag tyckte ett assembler exempel var bäst. Det fungerar alltid, miljön
är gratis och fungerar bra, och praktiskt taget *alla* som håller på med
PIC "förstår" assembler.

> Jag tänkte programera i Basic för det har jag lite vana utav iomed att jag har programmerat i VB.

En alldeles utmärkt anledning att undvika Basic på PIC !
"Plattformen" är så fundamentalt annorlunda så du kommer bara
att ställa till det med VB i tankarna... :-)

*OM* du inte har kört lite assembler först så att du "kan" PIC, då
skulle du kanske kunna anpassa ditt sätt att programmera och inte
göra lika många tabbar.

> ASM är inte det mycket svårare?

Det svåra är att lära sig hur PIC processorerna (eller AVR eller någon annan
mikrokontroller) fungerar i grunden, inte att lära sig det ena eller det
andra språket. Och jag påstår att man lär sig PIC arkitekturen snabbare
om man kör assembler, i alla fall under ett tag (säg 6-12 månader, det
beror på hur snabbt man lär sig).

> När jag installerar MicroBasic så frågar den om vad som ska installeras:
> PicFlash 2,0
> PicFlash 1,0
> Vad är det?

Antagligen deras egen programmerare. Finns det ingen dokumentation ?

> Jag har en polare som kör MicroPascal och han köpte en programmerare
> av dej Sodjan, Kan jan använda samma programvaror som han till min
> programerare från Elfa?

Här är det lite oklart vad du menar med "programvaror" ?

Om du menar programvaran till själva *programmeraren*, så är det nej.
Din programerare och Wisp628 använder olika programvara på PC'n.

Om du menar *utvecklingsmiljön*, så är det ja.

Man måste skilja på utvecklingsmijön å ena sidan, och programmeraren å den andra sidan.

Utvecklingsmiljön (MPLAB, MicroBasic, PICBasic, whatever) skapar "HEX filer"
som innehåller maskinkoden i binär form (kodat i HEX).

Programmeraren ser sedan till att en HEX fil (oavsett hur den är skapad)
förs över till "the target PIC" som det brukar kallas. Alltså där
applikationen skall köras.

Wisp628 (med XWisp2) har ingen aning om varifrån HEX filen kommer !
Inte heller din programmerare med *sin* programvara.

> Isåfall så vore det bra för då kan jag köra samma språk som han och få hjälp IRL.

Här menar du utvecklingsmiljön, eller hur ?
Eller vad menar du med "samma språk" ? MicroPascal är inte det samma som MicroBasic...

Personligen tycker jag att det vore bättre om ni hjälper varandra
med assembler... :-) :-)
Aluvi
Inlägg: 463
Blev medlem: 26 februari 2005, 19:51:32

Inlägg av Aluvi »

Det här låter som det blir att lära sej assambler :-)
IOFS så är det alltid roligt med att lära sej nya saker och min vän är ochså sugen på att lära sej det.

OK var börjar jag om vi ska välja assambler?
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

http://www.mikroelektronika.co.yu/engli ... icbook.htm

Har fått för mig att denna guide är skaplig.

Tyvärr behandlar den mest 16F84:an, sodjans favorit :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> OK var börjar jag om vi ska välja assambler?

Tja, "nätet" är väll aldrig helt fel. Dock finns det mycket skräp där också.

Här är en kille i US som har gjort en kurs på något
universitet. Ganska bra material, dock har de valt en gammal processor
(16F84A), men om man läser deras material och samtidigt "följer med"
i databladet för sin egen processor, så ger det sig nog. Snyggt material
är det i alla fall... : http://www.amqrp.org/elmer160/lessons/ .

Sedan finns det massor av kod uppdelat i olika kategorier på
www.piclist.com. Välj "PICList.com Source Code Library" från
förstabilden. Massor av kod, mycket skrivet av de bästa PIC
programerana world-wide. En del är *riktigt* avancerade, ifall
man är intresserad av algoritmer och avancerad matematik... :-)

Mikroelektroniska's guide är nog inte heller helt fel, bara man minns
att även den är skriven för en gammal processor...

Så, det finns inte *ett* ställe att starta på.

Se gärna även "PICList.com PIC Beginners Checklist" på www.piclist.com

Se även : http://www.voti.nl/swp/index.html .

Höll på att glömma...
http://www.elektronikforumet.com/forum/index.php :-)
Skriv svar