www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Beispielprogramm für den PIC 12F629


Autor: Picler (Gast)
Datum:

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

Autor: Analog (Gast)
Datum:

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

Autor: Picler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite mit dem PICC Lite 9.6

Wo finde ich die htc.h? Im "include" verzeichnis ist sie nicht...

Autor: Picler (Gast)
Datum:

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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Füge ganz am Anfang mal folgende Zeile ein:

 CMCON=0x07; //alles digitale IO-Pins

Autor: Picler (Gast)
Datum:

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

Autor: Severino R. (severino)
Datum:

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

main()
{
//Init
static bit bitvar;

TRIS3 = 1; //GPIO3 Input
TRIS1 = 0;


    while(1)               //  Loop Forever
    {
    GPIO1 = 1;             // oder =0, je nachdem wie die LED angeschlossen ist
    }
}

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CMCON beim statischen setzen nicht vergessen !

Autor: Picler (Gast)
Datum:

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

Autor: Picler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kennt jemand Beispielcode wie ich mit einem Timer eine PWM erzeuge?

Autor: Picler (Gast)
Datum:

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

Autor: Picler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich meine Natürlich der Ausgang hätte eine Periode von 1000 und eine 
Pulsweite von X.

Machbar so?

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.