mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmierproblem SiLabs C8051F300


Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich möchte einen SiLabs C8051F300 in C programmieren.
Ich hab den WDT deaktiviert, alle Pins initialisiert und den internen 
Oszillator eingestellt. Ich möchte zuerst mal nur einen Ausgang aus bzw 
einschalten, bisher leider ohne Erfolg. hat jemand eine Idee woran es 
leigen könnte.
***

#include <c8051f300.h>

sbit Taster  = P0^5;
sbit LED1   = P0^0;
sbit LED2   = P0^3;

void OSCILLATOR_Init(void);
void PORT_Init(void);

void main(void)
{
  OSCILLATOR_Init();
  PORT_Init();
  LED1 = 1;
  LED2 = 0;
  P0 = 0x41;
}

void OSCILLATOR_Init(void)
{
  OSCICN  =  0x04;  //internal Oscillator, lowest frequency
}


void PORT_Init (void)
{
  P0MDIN   = 0xEF;  // Select P0.4 as analog input
  P0MDOUT = 0x45;  // Select p0.6, P0.0 und 0.3 as push-pull output
  XBR0  = 0x10;  // P0.4(ADC) is skipped by the crossbar
  XBR1  = 0x00;  // keine special Functions on Pin available
  XBR2  = 0x40;  // enable crossbar and weak pull-ups
  PCA0MD  = 0x00;  // Watchdog Timer deaktivieren
}

Autor: manu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht sollte es 0x49 anstatt 0x45 heissen:
P0MDOUT = (1<<0)|(1<<3)|(1<<6); // (== 0x49)

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hast du recht. Uups. Aber ändern tut es nichts, beide LEDs bleiben 
dauerhaft an.
Gruß Jörg

Autor: Pieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin moin,

sind die InitWerte vom ConfigTool?
Wenn nicht...
Configuration Wizard 2 Release 2.40 Release Notes
Copyright (C) 2009 Silicon Laboratories, Inc.
...holen.

mfg
Pieter

Autor: Ingenör (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nimm doch einfach das gute alte Blinky Beispiel.
Beim Initialisieren darauf achten dass die Crossbar richtig 
initialisiert wird. Ansonsten kannst Du einzelne Ports auch skippen.

Autor: kkid82 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch mal den Watchdog timer gleich als aller erstes zu deaktivieren!

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.