www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehler in Miniprogramm


Autor: Mino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

nachdem ich nun endlich meine Hardware soweit am laufen habe, kommt auch 
schon das nächste Problem.....nämlich die Software :-)

Folgendes Miniprogramm soll mal als Einstieg dienen:

#pragma chip PIC16F627
#pragma config = bin(11.1111.0111.0001)

void main()
{
TRISB=0b00000000;         // Alles Ausgänge

  if (PORTA.0==1)
  {
  PORTB.0=1;
  }
  else
  {
  PORTB.0=0;
  }
}

Funktion soll sein wenn Taste1 gedrückt soll LED1 leuchten.
An PortA sind von 0-3 drei Taster angeschlossen
An PortB sind von 0-5 sechs LEDs angeschlossen

Leider leuchtet garnix. Die Hardware ist okay, Beispielprogramme die zum 
Board dazugeliefert wurden funktionieren (leider sind diese in ASM 
geschrieben).

PortA ist doch soweit ich das nachgelesen haben immer als Eingang 
geschaltet, oder liegt daran?

Bitte um Hilfe.....


Mino

Autor: Frank L. (hermastersvoice)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht wär ne Schleife nicht verkehrt? Nur sone Vermutung.

bye

Frank

Autor: Mino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ist´s denn so jetzt richtig:

#pragma chip PIC16F627
#pragma config = bin(11.1111.0111.0001)

void main()
{
  TRISB=0b00000000;        // Alles Ausgänge
  while(1)
  {
    if (PORTA.0==1)
    {
    PORTB.0=1;
    }
    else
    {
    PORTB.0=0;
    }
  }
}

Tut aber leider trotzdem nicht :-(

Bin eben eine kontinuierliche Programmabarbeitung gewohnt (z.B. S7, 
falls das bekannt ist....)

Schönen Abend

Mino

Autor: Alex Bürgel (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mino,

Das sollte aber so klappen.
Hast du mal einen Schaltplan deines Aufbaus?

Schöne Grüße,
Alex

P.S. Wenn du einfach nur PORTB.0 = 1; machst (ohne die Taster-Abfrage) 
dann leuchtet die LED auch?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach mal am Anfang deines Programmes das hier:

 CMCON=0b00000111;

Autor: Alex Bürgel (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jop, Holger hat Recht. Ich hatte vergessen, dass RA0 ein Compare-Eingang 
ist.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Jop, Holger hat Recht. Ich hatte vergessen, dass RA0 ein Compare-Eingang

Kleine Richtigstellung: RA0 ist ein Eingang des Analog Komparators ;)

Autor: Mino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich sag nur "Vielen Dank !!!"

Mit der Zeile CMCON=0b00000111; ist der "Fehler" behoben.

Jetzt funktioniert`s :-)



Schönen Abend

Mino

Autor: Alex Bürgel (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weist du inzwischen auch, warum du die 3 letzten Bits von CMCON auf "1" 
setzen musstest?

Schöne Grüße,
Alex

Autor: Mino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab´s soweit verstanden. Was mir passiert ist wird auf einigen I-Net 
Seiten als "Analogfalle" bezeichnet.....passender Ausdruck.

Mir war bist dato nicht klar vieviele Register es zur Konfiguration von 
allem möglichen gibt. Ich habe mich nur auf die Umschaltung zw. Eingang 
und Ausgang  konzentriert.
Wenn man sich jedoch einige Beispielprogramme ansieht wird klar das es 
vor dem eigentlichen Programm ganz schön viel zu erledigen gibt :-)

Kenn jemand eigentlich eine gut leserliche Übersicht (also nicht gerade 
das Datenblatt vom Hersteller) über alle Register vom PIC16F627.
Finde im I-Net nur immer Bruchstücke. Gut erklärt finde ich die Sache 
z.B. hier:

http://www.sprut.de/electronic/pic/grund/inout.htm



Schöne Grüße

Mino

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.