www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interner Oszillator PIC


Autor: David Brec (drdave)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Der Micha (steinadler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll denn dieses Programm machen?

Es fehlt die Endlosschleife.
while(1)
{
}

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: David Brec (drdave)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Der Micha (steinadler)
Datum:

Bewertung
0 lesenswert
nicht 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.
#include<18F4550.h>

#fuses INTRC,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP
#use delay(clock=8000000)

void main()
{
setup_oscillator( OSC_31KHZ );
}

nach setup_oscillator(..) musst du ein:
while(1)
{
// hier packst du deinen Code rein (Werte einlesen usw.)
}

einfügen.

Autor: Master Snowman (snowman)
Datum:

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

Autor: David Brec (drdave)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Der Micha (steinadler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.