Hallo! Möchte meinen PIC 18F4550 mit dem Internen Oszillator betreiben, wobei die Taktfrequenz auf 31kHz geteilt werden soll. Programmier das ganz im Mplab. Das sieht bei mir jetz so aus, funktioniert auch nicht, vl könnte mir jemand von euch helfen? #include<18F4550.h> #fuses INTRC,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP #use delay(clock=8000000) void main() { setup_oscillator( OSC_31KHZ ); } mfg Dave
Was soll denn dieses Programm machen? Es fehlt die Endlosschleife. while(1) { }
was soll das werden? sieht für mich nach brainstorm-copy-paste aus... nimm ein lauffähiges MPLAB-projekt oder erstell dir eines mit hilfe von sprut.de dann ändere es so ab, dass der interne oszillator dafür gebraucht wird.
also das programm soll temperaturwerte über den I2C bus einlesen, und danach per funkmodul versenden. Da dies Solarbetrieben und mit akku funktioniert, will ich die taktfrequenz so niedrig wie möglich wählen, um den stromverbrauch zu minimieren. ich wollte praktisch nur mal den PIC mit dem internen oszillator betreiben, und danach mit der programmierung weiterzugehen. Wie sollte der code also aussehen? könnt ihr mir vl helfen? danke! mfg David
Woher weißt du, ob das nicht funktioniert? Hast du das mit dem Debugger getestet oder wie? Übrigens kannst du das, was du jetzt über den Präprozessor gemacht hast (#fuses ...) auch über MPLAB->Configure->Configuration Bits einstellen, das ist ziemlich komfortabel.
1 | #include<18F4550.h> |
2 | |
3 | #fuses INTRC,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP
|
4 | #use delay(clock=8000000)
|
5 | |
6 | void main() |
7 | {
|
8 | setup_oscillator( OSC_31KHZ ); |
9 | }
|
nach setup_oscillator(..) musst du ein:
1 | while(1) |
2 | {
|
3 | // hier packst du deinen Code rein (Werte einlesen usw.)
|
4 | }
|
einfügen.
mit "was soll das werden?" meinte ich nicht dein projekt sondern, ob du ahnung hast, was du im obigen code geschrieben hast...
ich hab des ganze über den Stromverbrauch gemessen, da sich dieser ja laut datenblatt entsprechend verändert! hab jedoch keine veränderung feststellen können!
Naja... ich weiß ja nicht, wie sich der Controller bzgl. Stromverbrauch verhält, wenn er gar nix zu tun hat. Mach doch mal while(1); rein und schaue ob sich was tut.
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.