C-programmering til PIC16F819

Tags:    c++

<< < 12 > >>
Hej udviklere,

Først vil jeg lige sige, at jeg er helt ny på siden, så hej til alle!

Nu til sagen: Jeg sidder og arbejdet med et transducer-projekt i faget Teknikfag/Elteknik A (HTX) og skal i den forbindelse skrive mit første C-program til en PIC16F819. Jeg kan C i forvejen, og jeg har rodet lidt med Assembler til PIC16F84, men PIC16-C virker lidt abstrakt for mig. Kan jeg få jer til at give mig et grundlæggende eksempel på en fungerende kode eller på anden måde hjælpe mig igang? Hvis det har nogen interesse, har jeg selv forsøgt at skrive lidt kode her:

Fold kodeboks ind/udKode 


På forhånd mange tak for hjælpen!



13 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Hvilken compiler og derved hvilke C libraries har i adgang til?

du vælger inp/out ved brug af TRIS<port>=0/1

så vidt jeg husker er 0 output og 1 input, men står i databladet.

Med de libraries jeg havde adgang til på HTX kan du bruge følgene:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 16.12.2008 14:37 af Bruger #1330
Hey Toke,
jeg har selv kodet en hel del C til PIC16F690.

Er der noget bestemt du kunne tænkte dig lidt kode eksempler på?

har lagt koden samt diagrammer mv. til mit eksamensprojekt i teknik A op her: http://kenman.dk/temp/eksamen.zip

Til projektet er der bl.a. kodet:
interrupts
output til LCD
AD konvertering
input fra keypad
seriel kommunikation mellem 2 PIC

det skulle være okay kommenteret, men fyr endelig løs med spørgsmål.

Håber det kan bruges.



Mange tak! Der er en masse spændende kode der... Men jeg er stadig lidt i tvivl om nogen af de grundlæggende ting. Hvordan definerer jeg f.eks. inputs og outputs? Lad mig bare bruge F819-konfigurationen til vores aktuelle projekt:

- Inputs -
AN0 > in1
AN1 > in2
AN2 > in3

- Outputs -
RB0 < out1
RB1 < out2
RB2 < out3
RB3 < out4
RB4 < out5
RB5 < out6

Hvordan skal det skrives?



Indlæg senest redigeret d. 16.12.2008 14:16 af Bruger #14505
Mange tak!
Men hvad hvis jeg vil sætte nogle bit i PORTA/PORTB til input og andre til output?
TRISA.n = 0/1?



hmm, ja det skulle jeg mene :)



Hey, så har jeg muligvis forstået noget! Jeg skriver igen, hvis (når) jeg fucker op.

EDIT:

Fold kodeboks ind/udKode 


Så skal jeg bare finde ud af, hvor jeg kan hente de analog-til-digitale inputs... Har jeg lavet nogen indlysende fejl?



Indlæg senest redigeret d. 16.12.2008 18:30 af Bruger #14505
Bare en lille kommentar til diagrammet husk at anvende afkoblingskondensatorer ud for PIC kredsene.



umidelbart ser det meget rigtigt ud :)
dine analog-til-digitale inputs henter du via deres AD konverter, den er beskrevet i databladet til PIC'en og i det kode jeg har uploadet, er der et kodeeksempel på den :)

der er dog én ting jeg ikke forstår.
Du definerer selv alle portene, hvorfor?
Der findes C headers til PIC'en der gør det for dig :)



Kondensatorer? Forklaring søges, Emil :)

Jeps, jeg ved, at der allerede findes headers til det... Jeg har det bare bedst med i første omgang at skrive hele koden selv, da jeg så ved præcis, hvad skidtet gør.



hehe helt iorden, skal der også være plads til :)

hvad bruger i til PIC'en? bare deres starter kit med demo boards?



<< < 12 > >>
t