Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Probleme mit Ein- und Ausgängen Kategorie: Programmierung C (von Mario - 24.03.2006 8:18)
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
Ich plane mit Hilfe ihrer C-Control Pro Mega 128 eine Schaltung zu realisieren. Zusätzlich zum Board
und der CPU sind wir im Besitz einer LCD-Anzeige (zur Statusanzeige, ist noch in Planung) und einem
 Tastenfeld (zur späteren Programmauswahl).

Fakten zur Planung:

Die C-Control soll
-16 Eingänge haben, die per Taster angesteuert werden
-16 Ausgänge zur Ansteuerung von Transistoren haben (Die beim Durchschalten eine Reihe LED's
leuchten lassen)

Programm 1:
Ich habe mit dem Testprogramm versucht, die entsprechenden Ports auf Ein- bzw Ausgang zu
schalten und nach Betätigung eines Tasters (bzw Ansteuerung eines Ports) einen Ausgang für 20
Sekunden auf Ansteuerung zu belassen, bevor er wieder auf 0 zurückfällt. Allerdings messe ich an
den Ports sehr komische Werte (3V, egal ob Ein- oder Ausgang, angesteuert oder nicht,oder ich
messe dauerhaft 5V) Manchmal funktionierte es allerdings auch wie es sollte. Der Ausgang blieb bei
ca. 0,8V, bis ich den passenden Eingang angesteuert habe. Dann stieg er auf 5,6V, blieb aber nicht
fĂĽr die eingestelle Zeit bei AbsDelay(), sondern fiel immer schon nach ca. 2 Sekunden wieder ab.
Habe ich einen Fehler in der Programmierung? Oder liegt es evtl am Board?

Eigentlich geplant ist folgendes:
Der Ausgang VAREL bleibt dauerhaft auf 1, bis einer der anderen 15 Eingängen angesteuert wird. Varel
soll dann ausgehen und der dazugehöre Ausgang auf für 20 Sekunden auf 1 bleiben, es sei denn ein
anderer Ausgang wird wieder angesteuert. Dann soll dieser stattdessen fĂĽr 20 Sekunden bleiben.

Wie wäre das realisierbar? Es wäre auch nett, wenn jemand eine ausführlichere Erklärungen für die
Timerfunktionen hätten, denn die aus dem Handbuch finde ich sehr mangelhaft.

MfG
Mario

Programm:
#define EVAREL 16    //Eingang von VAREL
...
...
...(geht so weiter bis)
#define EFILTON 27

#define VAREL 0        //Ausgang VAREL
...
...
...(geht so weiter bis)
#define FILTON 7


void Programm1(void)

 byte FVAREL;           //Variable fĂĽr Funktion Varel definieren
 ...
 ...
 ...(geht so weiter bis)
 byte FFILTON;

while(true)                                 //Endlosschleife (Warten auf Ansteuerung)
  {
   while(Port_ReadBit(EVAREL))  //Wenn Eingang angesteuert wird
   {
   if (FVAREL!=1) FVAREL=1;     //Setze Funktion Varel auf 1
   else break;
   }

   while(FVAREL)                //beginne mit Ansteuerung des Ausgangs
   {
   Port_WriteBit(VAREL,ON);     //Setze Ansteuerung auf 1
   AbsDelay(WARTEZEIT);         //Die Ansteuerung 20s auf 1 belassen
   Port_WriteBit(VAREL,OFF);    //Setze Ansteuerung auf 0
   if (FVAREL==1) FVAREL=0;     //beende Funktion Varel
   }
  }
}

void main(void)
{
 Port_DataDir(EINGANGSR1,PORT_IN);   //Ein- und Ausgänge definieren.
 Port_DataDir(AUSGANGSR1,PORT_OUT);
 Port_DataDir(EINGANGSR2,PORT_IN);

 Programm1();                   //Auswahl(soll evtl durch ein zweites Programm erweitert werden)
}

 


Ich muss zugeben ich hab nich sooo den Plan davon.Sorry schonmal ^^


    Antwort schreiben


Antworten:

Re: Probleme mit Ein- und Ausgängen (von Reiner S. - 25.03.2006 9:30)
    Re: Probleme mit Ein- und Ausgängen (von Bernd der Alte - 27.03.2006 12:11)
        Re: Probleme mit Ein- und Ausgängen (von Markus - 28.03.2006 20:36)
            Re: Probleme mit Ein- und Ausgängen (von Bernd der Alte - 30.03.2006 12:18)