Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > 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 ^^