mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PICC Programm Syntax Frage


Autor: Tobias Burgstaller (tobi85)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobias Burgstaller (tobi85)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.