Forum: Mikrocontroller und Digitale Elektronik PIC12F675 mit hitech PICC Lite


von Thomas1123 (Gast)


Lesenswert?

Hallo erstmal

ich bin am verzweifeln
ich versuche mich an einem PIC12F675
wollte eigentlich einen wert analog auslesen und wenn dieser wert 
Grösser
ist als "X"
dann soll an einem anderen pin eine led angeschaltet werden.
diese idee habe ich nach etwa 6 stunden misserfolg verworfen und dachte
versuchste erstmal eine led an irgenteinem pin einzuschalten und dann 
fertig.
ABER nichteinmal dass kriege ich auf die reihe.
habe vorher mit dem pic 16F84A gearbeitet und keine grösseren probleme 
gehabt.

hier mal der code für den 12F675
1
#include "htc.h"
2
#include "pic.h"
3
4
__CONFIG (WDTDIS & UNPROTECT);
5
6
7
8
9
//-----------------------------------------------------------------------
10
11
int setup()
12
{
13
  TRISIO   = 0b00000000; // alles auf ausgang
14
  ANSEL   = 0; //alles analoge aus
15
  return 0;
16
}
17
//-----------------------------------------------------------------------
18
19
int main (void)
20
{
21
  setup();
22
  for(;;)
23
  {
24
    GPIO5 = 1;
25
  }
26
}

währe echt prima wenn mir jemand sagen könnte wo der fehler is und noch 
besser is wenn mir jemand sagen könnte wie das mit dem AD wandler 
funktioniert

wichtig dabei ist das es sich um ANSI C-Code handelt
also kein ASM oder das C welches bei mplab dabei is

MFG Thomas

von David (Gast)


Lesenswert?

Hi,
ich bin mir nicht sicher aber musst du nicht den Header für den 12F675 
einbinden?

von Thomas1123 (Gast)


Lesenswert?

Das macht das MPLab meines wissens nach selbst da man ja unter Configure
und dann Device den pic einstellt und die htc.h dann immer schaut
#ifdefined pic12f345
#define pic12f543
oder ähnliches
also zumindest hat es beim 16f84 wunderbar funktioniert

was glaube ich mein problem zu sein scheint is das ich nicht weiss in
welcher reihenfolge man die ganzen steuerregister und vorallem welche
register eingestellt werden müssen

was ich auch noch nicht so richtig hinbekomme ist das konfigurationswort

von Thomas1123 (Gast)


Lesenswert?

habe des rätsels lösung gefunden

an der letzten stelle des programmcodes MUSS die einstellung für den 
internen oscillator vorgenommen werden
habe die antwort auf dieser seite unter "Frage 13" gefunden.
http://www.il-online.de/il_faq1.htm#FAQ13:

das ding funktioniert einwandfrei auch der AD-Wandler

MFG Thomas

von Florian (Gast)


Lesenswert?

Hallo,

Hab da ein änliches Problem mit dem 12F675
Er lässt sich zwar programmieren(mit ICD 2 LE), doch kann der Debug 
modus nicht gestartet werden und ich schaff es nicht eine Diode 
anzusteueren.
Das mit dem Calibration Register habe ich wie folgt versucht:

OSCCAL = 0x80;  //set Oscialltor frequency to middle

hat leider nichts bewirkt.
Danke für eventuelle Hilfe

Florian

von Severino R. (severino)


Lesenswert?

Der normale PIC12F675 lässt sich nicht debuggen.
Du brauchst einen PIC12F675-ICD, das ist eine Version mit zusätzlichen 
Pins für den ICD2. Das deshalb, weil sonst von den max. 6 Pins (nach 
Abzug der Stromversorgung) nur noch 3 frei bleiben würden.
Der PIC12F675-ICD kommt auf einem Trägerprint, den man anstelle des 
richtigen PIC12F675 in die Schaltung stecken kann.

von Carsten (Gast)


Lesenswert?

Hast du einen "normalen" PIC12F675 oder das ICD-Header-Board?
Den einfachen Controller kannst du mit dem ICD2 nicht debuggen, dazu 
gibt es ein spezielles Interface-Board mit einem anderen µC drauf.
http://www.microchipdirect.com/ProductDetails.aspx?Catalog=BuyMicrochip&Category=Debuggers&mid=1&treeid=6

von Thomas1123 (Gast)


Lesenswert?

@folrian
1. hast du die analogausgänge ausgeschaltet?

2. schau mal in das hexfile das auch wirklich an der letzten stelle der 
oscal-wert steht

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.