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

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: