Beispielprogramm für den PIC 12F629

Gast #775509
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
Gast
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ß
Gast
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;
    }
}
Gast
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
}
Gast
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?
Gast
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.