C programmering till PIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Gimbal
Inlägg: 8659
Blev medlem: 20 april 2005, 15:43:53

Inlägg av Gimbal »

Att PLACERA knapparna är grafisk design, att få dem att fungera kräver iallafall under windows en hel del tråkig kod om du inte använder tillrättalagda verktyg som t.ex visual basic (eller motsvarande funktioner under Borland).

Men visst, visual basic har inte mycker mer än for-looparna gemensamt med urbasicen. Men i vilket fall som helst så duger det till en hel del numera.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Vet inte om ni missade i mitt förra inlägg eller om jag bara missförstått. Vart kan jag få tag på ngn form av lathund till MikroC?
Användarvisningsbild
lgrfbs
Inlägg: 7308
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Det brukar ingå en snabb hjälp (Qhelp) i programmet sedan en hel dusk
med exempel att studera, och räcker inte detta så är det bara att gå till
biblioteket och låna en bok om C programming för att komma in i syntaxen.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Oki.

En fråga till, jag sitter o kollar på allt om elektroniks hemsida och ser att till nästan alla projekt med Pic har de använt PIC16F84A-04/P. Vad är det som har gjort denna krets så poppis??
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Det allra största skälet är nog att den ursprungliga 16C84:an då var den enda PIC:en som var omprogrammeringsbar via EEPROM istället för OTP-PROM som satt i alla andra PIC:ar med plastkapsel. Sedan var den också rätt billig och "lagom" i storlek för hemmaprojekt. 16F84:an har sedan tagit över som en kompatibel ersättare. Numera är t.ex 16F628 en bra ersättare i många applikationer.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46935
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg av TomasL »

Använder själv WIZ-C, det är nog en av de bästa IDEerna på marknaden, med tanke på priset.

För under tusenlappen får man en komplett IDE med ANSI-C och assembler, klarar i stort sett samtliga PIC, möjligtvis med undantag av de konstiga DS-PICarna.
Med en inbyggd Simulator som hanterar en mängd externa element såsom LCD mfl och klarar av att simulera ett Multi-projekt dvs när flera PICar pratar med varandra.
Tillsammans med deras PICKey kan man sedan flytta över och avlusa i hårdvaran direkt.

www.fored.co.uk
Senast redigerad av TomasL 24 september 2006, 13:38:37, redigerad totalt 3 gånger.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Har bestämt nu vilket mitt första kom i gång projekt ska bli. Det är mest för att få ordning på definiering av in/utgångar och liknande, dvs grundläggande grejer. Ren övning kan man säga.

Ska göra en mycket enkel pulsgenerator som ger ut olika frekvenser på en fyrkantspuls beroende på vilka "ingångknappar" som är nedtryckta. Ska ha detta för att testa servon som sitter i modellflygplan.
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> möjligtvis med undantag av de konstiga DS-PICarna.

Mycket är annorlunda, men vad är "konstigt" ??
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46935
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg av TomasL »

Var väl mer ironiskt menat.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Satt igår två timmar o pulade, fastnade så gott som direkt. Hur ska man def in och utgångar. Tror jag fattade att man använder sig av hextal för varje bit så att säga, men jag fick inte rätt på det ändå. Är det ngn som orkar hjälpa mig traven. Ta gärna Pic16F627 som ex och visa hur man def några ut/ingångar för givna pins.

Tack....
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

I MikroC:
PORTA.F7 är just PORTA bit 7, F måste innan bitnumret, man kan tydligen inte köra direkt med bitnummer.

Alltså:
PORTA.F0
PORTA.F1
PORTA.F2
PORTA.F3
PORTA.F4
osv osv.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Okey.
Om jag tex vill sätta PORTA.F0 som ingång och PORTA.F1 som utg. Vad ska jag då skriva. Och vad betyder trisb?

En massa dumma frågor jag vet, men jag behörver som sagt komma över första trappsteget.
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Och vad betyder trisb?

Har du överhuvudtaget läst TF datablad ?

Där beskrivs detta alldeles utmärkt, finns ingen
anledning att upprepa samma sak här.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46935
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg av TomasL »

newbadboy skrev:Okey.
Om jag tex vill sätta PORTA.F0 som ingång och PORTA.F1 som utg. Vad ska jag då skriva. Och vad betyder trisb?

En massa dumma frågor jag vet, men jag behörver som sagt komma över första trappsteget.
Om du vill komma över första trappsteget MÅSTE du läsa databladen för kretsen ifråga, du måste i princip kunna den utantil, bara att plugga, utmärkt sängläsning.
Sedan kan det vara lämpligt att läsa igenom manualen till kompilatorn, lär dig den utantill också.
Sedan är det en mycket bra ide att läsa igenom och "lära" sig "include-filerna", dvs .h-filerna för processorn i fråga, just för att komma underfund hur register, portar mm är refererade.
Det finns ingen genväg, börja läs, gör din hemläxa, sedan kan du börja ställa frågor om det du inte begriper.

Det är Mycket stor skillnad mellan att skriva ett program för Windows eller "nix", där behöver du bara lära dig API'erna eller knappt det, men för en mikrokontroller såsom en PIC eller liknande så jobbar du hela tiden med hårdvaran, och då måste du kunna den, veta vad som går och inte går att göra, lära dig specialiteterna såsom RMW osv.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Provat ett enkelt newbie program men de funkar inte. När jag trycker in knappen ansluten till porta bit 0 så tänds inte lamporna. Vad är det jag gjort fel?


// test

void main(){
porta = 0xf;
trisa = 0xf;
portb = 0;
trisb = 0;

if (porta.f0 == 1){

while(1){

portb = ~ portb;
delay_ms(500);
}
}
}
Skriv svar