Forum: Mikrocontroller und Digitale Elektronik pic programmierung


von Michael K. (grafmi40)


Lesenswert?

Hallo an die PIC Programmierer

Folgendes Problem habe ich:

#include <g:\bknd\cc5x\mk16f627.h>
#pragma config |= 0x3f29
void main()
{
char t, Flanke;
TRISB = 0b.0000.0000;
TRISA = 0b.0000.1111;
PORTA = 0;
PORTB = 3;
Flanke = 0;
t = 0;
hsm = 0;
  while(1)
  {
     if (hsm && Flanke == 1)
    {Flanke =1;  t++;}
    if (hsm && Flanke == 0)
    {Flanke = 0;}
    if (t == 1)
    {PORTB =5;}
    if (t == 2)
    {PORTB =3; t = 0;}
  }
}
// Programmende

im obengenannten mk16f627.h habe ich bestimmten Ports Bits zugeordnet.
(#pragma bit hsm @ PORTA.0 als Taste usw. und #pragma bit rt1 @ PORTB.0)
Aus der Headerdatei von CC5X hab ich die TRIS und PORT-bits gelöscht in 
der Annahme, dass beide Headerdateien eingelesen werden.
Zumindest meckert der Compiler mich nicht an.
Meine Taster sind an +5V  am PortA cmit 1kOhm an Masse, also mit + 
geschaltet.
Nun das grosse aber: funktionieren tut nix ausser PORTB = 3;
Programmieren tu ich sonst die schwersten Sachen aber hier ist das doch 
bestimmt ein einfacher Fehler oder übersehe ich da etwas ???
Füt Tipps bin ich sehr Dankbar.

MfG
M.Kellner

von holger (Gast)


Lesenswert?

CMCON=0b00000111;  //Comparator inaktiv

von Dieter Werner (Gast)


Lesenswert?

> #pragma config |= 0x3f29

Geht das so?
Ich hätte jetzt erstmal vermutet dass die configbits alle auf high 
stehen und da bringt ein |= ja bekanntlich nix.

von holger (Gast)


Lesenswert?

>> #pragma config |= 0x3f29

>Geht das so?

Ja, bei CC5x macht man das so.

Das Problem ist, das auf PORTA nach einem
Reset das Comparatormodul aktiv ist. Um
auf digital IO umzuschalten muß man CMCON
richtig setzen.

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.