Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: C-Control 2 Station Ports abfragen Kategorie: CC2-Unit & Appl.Board / CC2-Station (von André H. - 29.01.2006 21:09)
Als Antwort auf C-Control 2 Station Ports abfragen von Bandit18 - 14.01.2006 22:34
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Bandit18,

> Habe hier mal mein Problem geschildert. Vielleicht könnt Ihr mir ja helfen.
>
> Bitte helft mir mal
>
> Danke!

Zuerstmal eine Grundlregel:
Man verlinkt nicht eine Frage eines anderen Forums, sondern macht sich wenigstens die Mühe,
alles per Copy&Paste direkt zu posten. Denn nur so bekommt man auch schnell Hilfe.
Keiner hat Lust zwischen mehreren Fenstern umzuschalten, nur um zu antworten.

Ich hab' mir mal die Mühe gemacht und kopiere den Beitrag hier rein:
Die Antwort steht unten drunter.

> Hallo,
> ich habe meine C-Control 2 Station mal wieder zur Hand genommen und wollte nur eine kleine
> Aufgabe damit lösen. Jedoch bin nun schon in den Anfängen steckengeblieben.
> Ich wollte eigentlich die Zustände der Ports P0 bis P3 abfragen. Nun dachte ich eigentlich kein
> Problem und habe mir folgendes Testprogramm geschrieben.
> thread main
> {
>  stports.init();
>  lcdext.init();
> /*******************************************/
> /********   ANSTEUERUNG LCD    *************/
> /*******************************************/
>  stports.LCDlight(True);
>  lcdext.print("  C-CONTROL II");
>  lcdext.line(2);
>  lcdext.print("    STATION");
>  sleep 2000;
>  lcdext.clear();
>  plm.beep(plm.TONE_G1);sleep 2000;plm.beep(plm.TONE_OFF);
>  loop
>  {
>   if (stports.get(8)== 0){stports.setLED(1,1);} else {stports.setLED(1,0);}
>   if (stports.get(9)== 0){stports.setLED(2,1);} else {stports.setLED(2,0);}
>   if (stports.get(10)== 0){stports.setLED(3,1);} else {stports.setLED(3,0);}
>   if (stports.get(11)== 0){stports.setLED(4,1);} else {stports.setLED(4,0);}
>  }
> }

>
> Aber es funktioniert nicht Traurig
> Die LED´s gehen nicht aus, wenn ich die Ports mit 5V (über 10kOhm) beschalte.
> Was mache ich falsch? Port 8 bis 11 (P0 bis P3) sind doch die Klemmen 46 bis 49 oder?
> Oh man, was soll das noch werden mit mir Zwinkern
> Meine letzten Versuche mit der C-Control machte ich noch mit dem original System von Conrad
> (station_lcd.c2 station_io.c2). Nun benutze ich ja die aktuellen OS und Module von cc2net.de.
> Habe ich da vielleicht irgendetwas vergessen?
>
> Vielen Dank!

Du machst einen Grundlegenen Fehler, der durch Lesen der Modulbeschreibungen
nicht passiert wäre:
Das Modul stports.c2 ist ausschlie�lich für die stationspezifischen Ports, nicht aber für
die Standard I/Os. Dafür mu�t Du weiterhin ports.c2 benutzen.
Die mit P0 bis P3 beschrifteten I/Os sind die Ports P1H.0 bis .3 .
In ports.c2 sind das die Ports 8 bis 11.
Schreibe also statt stports.get() einfach ports.get() und es funktioniert.

Ein Tipp noch: Du brauchst hier keine If-Abfragen, sondern kannst einfach folgendes schreiben:
loop
 {
  stports.setLED(1,ports.get(8)==0);
  stports.setLED(2,ports.get(9)==0);
  stports.setLED(3,ports.get(10)==0);
  stports.setLED(4,ports.get(11)==0);
 }


Alternativ kannst Du das noch einfacher machen und folgendes schreiben:

byte i;
...
 loop
 {
  for i=1...4
  {
   stports.setLED(i,ports.get(i+7)==0);
  }
 }


MfG André H



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: