Hallo Leute, da ich heut zum ersten Mal einen µC programmieren möchte, benötige ich eure Unterstützung.. Bei der Aufgabe soll ein C Programm etwicklet werden, welches: 1:Zuerst den Schalter S2 (RA4)im Polling Verfahren abfragt. 2:Wird der Schalter betätigt, soll der 10- Bit A/D-Wandler gestartet werden und die obersten 4 Bit des Wandlungsergebnisses sollen an den LED´s RB <3:0> angezeigt werden. 3:Anschließend soll der Ausgang des Summers RC2 invertiert werden und eine Zeitschleife soll eine Zeit erzeugen, damit am Summer ein klar Ton erzeugt wird. Gruß Leon
Hallo, wobei genau benötigst Du denn nun Hilfe ? Du scheibst lediglich was Du haben willst, aber nicht wo es hängt. Gruß Christian
latif leon schrieb: > Bei der Aufgabe soll ein C Programm etwicklet werden, welches: Jo schön. Entwicklungsdienstleistung ist immernoch kostenpflichtig und Hausaufgaben machen wir hier auch nicht. Also: Welchen Compiler verwendest du denn? Alles zum Thema PIC findest du unter: http://www.sprut.de/electronic/pic/index.htm
Ich hab einfach so angefangen: #include "p18f452.h" #include "lcd.h" void init(void); unsigned int x=0; void init() { TRISA=0bFF; ADCON0=0b85; ADCON1=0b0E; TRISB=0bF0; } war das mal für die Initialisierung schon richtig??
Du musst deinen PIC Configurieren. Also welche Taktquelle usw. Du brauchst außerdem eine void main() Funktion. Wenn der PIC gestartet wird, fängt er in dieser Funktion an und nach allen Variablendeklarationen kannst du dann die init() aufrufen. latif leon schrieb: > TRISA=0bFF; Ich denke mal, das es nicht compilerabhängig ist: Hexadezimalzahlen werden 0xFF und nicht 0bFF geschrieben. Du kannst 0b10101010 schreiben, dann hast du die Binärzahl.
mach mal ein blinklicht, wenn das klappt, dann beschäftige dich mit dem taster und dann mit dem ADC - nicht anders rum! hier noch eine nette seite: http://www.pic-projekte.de -> tutorials
Dieter K. schrieb: > Jo schön. Entwicklungsdienstleistung ist immernoch kostenpflichtig und > Hausaufgaben machen wir hier auch nicht. # weder Hü noch Hott.. > Also: Welchen Compiler verwendest du denn? # C18-Compiler > Alles zum Thema PIC findest du unter: > http://www.sprut.de/electronic/pic/index.htm # Ich danke
Michael Skropski schrieb: >> Ich denke mal, das es nicht compilerabhängig ist: Hexadezimalzahlen > werden 0xFF und nicht 0bFF geschrieben. Du kannst 0b10101010 schreiben, > dann hast du die Binärzahl. Ja stimmt habs grade gelesen....
latif leon schrieb: >> Also: Welchen Compiler verwendest du denn? > # C18-Compiler http://pic-projekte.de/pic_c.html Da findest du noch einiges zum C18. Da ist das mit den Zahlenformaten und so auch ganz nett beschrieben. Sollte man kennen =) latif leon schrieb: > Ich hab einfach so angefangen: > > #include "p18f452.h" > #include "lcd.h" > > void init(void); > unsigned int x=0; > > void init() > { > > > TRISA=0bFF; > ADCON0=0b85; > ADCON1=0b0E; > TRISB=0bF0; > while (1) { } > } > > war das mal für die Initialisierung schon richtig?? Da gehört eine Endlosschleife hin, ansonsten macht der PIC ständig einen Reset (der dir nicht auffällt weil er so schnell ist). Ein µC Programm darf nie enden.
Lehrmann Michael schrieb: > Da gehört eine Endlosschleife hin, ansonsten macht der PIC ständig einen > Reset (der dir nicht auffällt weil er so schnell ist). Ein µC Programm > darf nie enden. Vergiss nicht, das init in main zu ändern. Also so z.B.:
1 | void init(){ |
2 | //Initialisierung
|
3 | }
|
4 | |
5 | void main(){ |
6 | // Variablen deklarieren
|
7 | init(); |
8 | while(1){ |
9 | //Programm
|
10 | }
|
11 | }
|
Wenn du die Variable in keiner Funktion deklarierst (in deinem Fall weder main() noch init() ) sind das globale Variablen, d.h. du kannst von jeder Funktion drauf zugreifen. Du kannst dann aber lokalen Variablen (innerhalb einer Funktion) nicht den selben Namen geben, logischerweise. Arbeite einfach die tutorials durch, dann läuft das schon.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.