PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu C-Code



Pilotzi
04.11.2010, 21:34
Hi
ich habe mir mal einen anderen COntroller zugelegt,nämlich den PIC12F675. Programmieren klappt mitlerweile nachdem ich datenblätter geweltzt habe und nun wollte ich mal eine neuerungenschaft testen nämlich den A/D Wandler. Nun funktioniert dieser aber nicht.

Das Poti sitzt an GP3 und alle anderen Pins bis auf VDD und VSS sind mit LEDs verbunden. Programmieren geht wunderbar aber wenn ich ihn so einschalte passiert nichts. Wenn ich allerdings nur das TRISIO und GPIO registert im hauptprogramm beschreibe,compilieren und brenne macht er was er soll. kann mir vielleicht jemand nen tipp geben was ich falsch gemacht habe? hier dazu der Quellcode:




//Testprog für den PIC12F675






#include <C:\Programme\bknd\CC5X\12F675.h> // Prozessor-Typ definieren

#pragma config |= 0b.0000.0000.0100



void main(void) // Start des Hauptprogramms
{

TRISIO = 0b.0000.1000;
ADCON0 = 0b.1000.1101;
ANSEL = 0b.0001.1000;

start:

//GO=1;

if(ADRESH>256)
{
GPIO = 0b.0011.0111;
}
else
{
GPIO = 0b.0000.0000;
}


goto start;


}


Hoffe das mir einer helfen kann
mit freundlichen Grüßen
Marisu

Rico88
09.11.2010, 22:03
Hallo Marisu,

erstmal kann ich dir zu einem klasse Controller gratulieren ;) Ich eiß nicht mehr wie viele 12F675 ich bereits verbaut hab.

Erstmal kann ich dazu nur sagen, das der Port GP3 kein Analogeingang ist. Dieser kann nur als Digitaleingang verwendet werden. Nach deiner Programm möchtest du den Kanal AN3 verwenden, der am Pin GP4 sitzt.

Deine Konfiguration im Register ADCON0 scheint gut zu sein.
In der Hauptschleife musst du jedoch das Bit 1 im Register ADCON0 setzen und arten, bis es durch das Programm zurück gesetzt wird.
Beim setzen auf 1 startest du den DD-Wandler und wenn er sich fertig ist setzt er das Bit selber auf 0.

Leider kenn ich mich nicht so mit C für PIC's aus, tue mich also schwer ein Programmbeispiel zu geben.

Hoffe das hilft dir.

Gruß Rico