Ich hab ein PICkit2, ein 12F629 und den PICC C-Compiler. Nun will ich mal ein Beispielprogramm zum laufen bringen. Zum Beispiel eine LED blinken lassen. 1. Hat Jemand son ein einfaches Demo-Programm? 2. Bei der Header-Datei des PICC C-Compiler steht: #ifndef HTC_H #warning Header file pic12f6x.h included directly. Use #include <htc.h> instead. #endif Was bedeutet das??? 3. Hab dann in meinem Programm pic12f6x.h eingebunden, beim Compilieren kam der Fehler: Warning [162] C:\Programme\HI-TECH Software\PICC\LITE\9.60\include\pic12f6x.h; 3.80 #warning: Header file pic12f6x.h included directly. Use #include <htc.h> instead. Wieso htc.h???? Sorry, mache das erste mal mit pics rum.. danke für eure hilfe
Hallo Picler, also 1. Solche Beispiele findest du entweder bei examples in deinem Compiler-Verzeichnis oder auf der Microchip-Homepage 2. =3. Das bedeutet, das du die Header-Datei direkt eingebunden hast und du sollst das nicht machen, sondern htc.h einbinden. Die htc.h sucht sich die richtige Header-Datei aus der Bauteil-Definition deines Projekts. Mit welchem Compiler arbeitest du eigentlich ? Mach einfach mal die htc.h auf, dann siehst du lauter abfragen zu den Prozessor-typen und dann eine zugehörigen include ... gruß
Ich arbeite mit dem PICC Lite 9.6 Wo finde ich die htc.h? Im "include" verzeichnis ist sie nicht...
Compilieren geht. Will man ein Schalter einlesen und an einem Pin ausgeben. Läuft aber leider nicht, was mach ich falsch? #include <pic12f6x.h> main() { //Init static bit bitvar; TRIS3 = 1; //GPIO3 Input TRIS1 = 0; while(1 == 1) // Loop Forever { bitvar = GPIO3; GPIO1 = bitvar; } }
Füge ganz am Anfang mal folgende Zeile ein: CMCON=0x07; //alles digitale IO-Pins
Danke, geht aber noch nicht. Muss ich icht auch noch ANSEL Null setzen? Wenn ich ANSEL = 0x00; mache, kommt die Fehlermeldung undefined identifier "ANSEL" Wieso das? ANSEL ist doch im header-file definiert.
Picler wrote: > undefined identifier "ANSEL" > Wieso das? ANSEL ist doch im header-file definiert. Der PIC12F629 hat gar kein ANSEL, weil er keinen A/D-Wandler hat. Kannst Du die LED wenigstens statisch einschalten? z.B.
1 | #include <htc.h> |
2 | |
3 | main() |
4 | {
|
5 | //Init
|
6 | static bit bitvar; |
7 | |
8 | TRIS3 = 1; //GPIO3 Input |
9 | TRIS1 = 0; |
10 | |
11 | |
12 | while(1) // Loop Forever |
13 | {
|
14 | GPIO1 = 1; // oder =0, je nachdem wie die LED angeschlossen ist |
15 | }
|
16 | }
|
Ich musste natürlich denn Oszi noch auf Intern stellen;-) Der 12F629 hat ja nur zwei Timer. Ist es damit möglich einerseits eine Zeit zu messen und andererseits ein PWM zu erzeugen?
Kennt jemand Beispielcode wie ich mit einem Timer eine PWM erzeuge?
Sagen wir ich hab einen Timer 0. Wird der Interrupt von Timer 0 ausgelöst mach ich folgendes: Timer mit X laden (jedes zweite mal mit 1000-X) Ausgang Invertieren Timer Starten Der Timer hätte dann eine Periode von 1000 und eine Pulsweite von X. Geht das so?
Ich meine Natürlich der Ausgang hätte eine Periode von 1000 und eine Pulsweite von X. Machbar so?
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.