Forum: Mikrocontroller und Digitale Elektronik PICC Programm Syntax Frage


von Tobias B. (tobi85)


Lesenswert?

Hallo. Fang gerade erst wirklich an mit der Programmierung von 
Mikrocontrollern. Benutze gerade den PICC 18 STD Compiler eingebunden in 
MPLAB IDE um einen PIC 18F4620 zu programmieren.

Ich probier ein einfaches Programm zu schreiben in dem ich Ein paar Pins 
als Output setze und dies dann mit bestimmte Werte beschreibe.

Hier ist mal mein CODE:

//////////////////////////////////////////////////////////////////////// 
/////
#include <pic18.h>
#include <htc.h>

__CONFIG(1, HS);
__CONFIG(2, WDTDIS);
__CONFIG(3, PBDIGITAL);
__CONFIG(4, DEBUGEN & LVPDIS);


main()
{


  //Digitale Ausgansleitungen zu Output setzen

  TRISB0 = 0;
  TRISB1 = 0;
  TRISB2 = 0;
  TRISB3 = 0;
  TRISB4 = 0;
  TRISB5 = 0;
  TRISC4 = 0;
  TRISC5 = 0;

  //Setzen der Adressleitungen

  RB0 = 0;
  RB1 = 0;
  RB2 = 0;

  //IC Auswahl treffen

  RB3 = 0;
  RB4 = 1;
  RB5 = 1;
  RC4 = 1;

  //Datenleitung setzen

  RC5 = 1;

}
//////////////////////////////////////////////////////////////////////// 
///

Wenn ich jetzt aber durch das Programm durch "step" und mir dabei den 
Special Function Register anschau will sich einfach der Wert von RB4 
nicht auf eins setzen lassen.

Das heißt das ich immer PORTB = 00100000 bekommen anstatt PORTB = 
00110000

Kennt sich jemand mit PICC Compilern aus?

Wie gesagt bin ich noch sehr neu in der Materie und ich bin für jegliche 
Hilfe sehr dankbar. Kann natürlich sein das ich in meinem Code 
irgendwelchen Quatsch verursacht hab.

Vielen dank schonmal!

Tobi

von Tobias B. (tobi85)


Lesenswert?

Habe gerade herausgefunden das sich im Special Function Register alles 
richtig abspielt wenn ich es mit dem MPLAB SIM debug. Sobald ich aber 
meinen MPLAB ICD2 benutze setzt sich das PORTB register immer falsch....

Warum???

Bin wirklich am verzweifeln.

von Gast2 (Gast)


Lesenswert?

Du musst ebenfalls das ADCON1 Register beschreiben, um von Analog-In auf 
Digital-I/O umzustellen -> PCFG3:PCFG0 muss 1111 sein
Ebenfalls ist es schwierig den PORTB im Debug-Mode zu benutzen, da ICD2 
die Pins RB5,RB6 und RB7 belegt. Im Release-Mode geht das schon nur beim 
debuggen sind diese Pins belegt.

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.