Forum: Mikrocontroller und Digitale Elektronik Interner Oszillator PIC


von David B. (drdave)


Lesenswert?

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

von Der M. (steinadler)


Lesenswert?

Was soll denn dieses Programm machen?

Es fehlt die Endlosschleife.
while(1)
{
}

von Master S. (snowman)


Lesenswert?

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.

von David B. (drdave)


Lesenswert?

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

von Der M. (steinadler)


Lesenswert?

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.

von Master S. (snowman)


Lesenswert?

mit "was soll das werden?" meinte ich nicht dein projekt sondern, ob du 
ahnung hast, was du im obigen code geschrieben hast...

von David B. (drdave)


Lesenswert?

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!

von Der M. (steinadler)


Lesenswert?

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
Noch kein Account? Hier anmelden.