Re: Relaiskarte ansteuern CCI 2.0 Kategorie: CC-Pro Unit & Appl.Board (von PeterS - 9.02.2010 18:26) | |
Als Antwort auf Re: Relaiskarte ansteuern CCI 2.0 von Thomas - 8.02.2010 22:12
| |
> > > > Hi, > > > > > > > > das Programm funktioniert bei mir. > > > > Ich glaube das deine Verbindung nicht passt. > > > > Check mal die RxD und TxD und achte darauf das die Reliaskarte RS232 Pegel verlangt > > > > und keinen TTL Pegel was die Unit ohne MAX202, 232 ausgibt. > > > > > > > > > > > > Grü�e Ulli > > > > > > > > > > Da auch ich leider das Problem habe, dass ich grad neu in diese Materie einsteige, verstehe > > > ich leider nur Bahnhof Sorry :) > > > Was passt denn an meiner Verbindung nicht? Du sprichst nicht von der USB Verbindung zum Board oder? > > > Du sprichst von RS232. Meine Relaiskarte ist aber auf dieser Modulkarte und dieser wiederum ist > > > auf die Platine gesteckt. > > > Das Programm habe ich einfach für MEGA128 kompiliert (nur mit Intfunc_lib.dll) und dann per > > > USB auf das Board übertragen. Wenn ich nun F10 drücke, dann leuchtet die rote LED auf und > > > es schlie�en sich keine Relais. > > > Lade ich ein anderes Program (zum Beispiel für das LCD Display) dann funktioniert es auf anhieb. > > > Ich wäre dir dankbar, wenn du mir sagen könntest wo ich suchen müsste, damit ich mal ein Relais > > > schalten kann :) > > > > > > Danke schon mal. > > > > > > Gru� Thomas > > > > Kann es sein, dass ich vielleicht irgendwo einen Jumper falsch sitzen habe? Ich habe > > nur die nötigen Jumper entfern, damit diese Zusatzboard auf die MEGA128 passt. > > Muss da noch irgendetwas entfernt werden von dem ich nichts wei�? > > > > Grü�e > > > > Thomas > > Also wenn ich folgendes Programm verwenden, dann leuchten die LED's der Relais schon mal auf. > Leider erreiche ich es nicht, wenn eine Taste gedrückt wird, dass ein Relais (in diesem Fall > das Relais Nr.1 ) schlie�t. > Das Board reagiert nicht auf die Eingabe. Hier nun das Programm > ifdef MEGA128 > #define Relais_1 12 > #endif > > int key_in; // globale Variablendeklaration > > //------------------------------------------------------------------------------ > // Hauptprogramm > // > void main(void) > { > Port_DataDirBit(Relais_1, 0); > key_in=Key_Scan(); // Tastatureingabe wird gelesen > if (key_in!=0) // und in die Variable key_in geschrieben > { > Port_WriteBit(Relais_1, 1); > } > else > { > return main(); > } > } Ooops, das Programm ist ja ein wenig grenzwertig. Tail-recursive. In dem Programm wird sehr schnell immer main() aufgerufen bis der Stack überläuft. Bitte eine while Endlosschleife benutzen: void main(void) { Port_DataDirBit(Relais_1, 1); // <- hier mu� eine "1" für Ausgang stehen while(1) { key_in=Key_Scan(); // Tastatureingabe wird gelesen if (key_in!=0) // und in die Variable key_in geschrieben { Port_WriteBit(Relais_1, 1); } } } Gruss Peter | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum