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

Re: Schieberegister Kategorie: Sonstige Hardware (von Tom - 3.08.2004 20:25)
Als Antwort auf Schieberegister von Markus Nüsser - 2.08.2004 20:45

Hallo,

wie wärs hiermit

Schieberegister

mfg Tom

> Hallöschen zusammen...
>
> Also, nachdem ich jetzt dein Buch so langsam durchhabe, und mir
> so einige erweiterungskarten gebaut habe, bin ich beim ansteuern eines Schieberegisters
> wohl etwas zu verwirrt, denn dieses register macht nicht wirklich das, was ich will, obwohl es technisch
> in ordnung ist, und die verdrahtung zum aplication board auch stimmt....
>
> also ich habe folgendes problem:
>
> ich versuche explizit auf die zusätzlichen ausgänge, die ich mir mit hilfe eines Schieberegisters aufgebaut
>  habe zuzugreifen...
>
> funktionieren soll es eigentlich alla aufruf wie
>
> prt_bit[0] = 1;
> portausgabe(0);
>

> prt_bit[0..7] sollen dabei die zusätzlichen ports darstellen
> portausgabe soll ganz einfach nur ein setzen aller ports erzwingen (der int wert ist eigentlich blödsinn, wird
>  aber bei umstellung auf einen einzelnen thread für die routine eh wegfallen...
>
> hier nun mal das progrämmchen mit dem ich am experementieren bin...
>
>
> const clock  = 0;   // P1L0
> const data   = 1;   // P1L1
> const strobe = 2;   // P1L2
>
> int i;
> int prt_bit[7];
>
> /************************************
>    Ansteuerung des Schieberegisters
>         8 Bit Ausgabe über 4094
> ************************************/

>
> function portausgabe(int x)
> {
>  int j;
>  ports.set(strobe,0);
>  ports.set(clock,0);
>  for j=0 ... 7
>   {
>    if prt_bit[j] !=0 ports.set(data,1);
>     else ports.set(data,0);
>    ports.pulse(clock);
>   }
>  ports.pulse(strobe);
>  sleep 1;
> }
>
>
> //***************
>     thread main
> //***************
>
> {
>  for i=0 ... 7
>     prt_bit[i]=0;
>  portausgabe (0);
>  loop
>   {
>     if ports.get(8)  //kommentar
>      {
>        plm.beep (10);
>        sleep 100;
>        plm.beep (-1);
>        sleep 900;
>        prt_bit[0] = 1;
>        portausgabe (0);
>      }
>   }
> }
>

>
> achja, ich habe extra die "unsichere" variante der portausgabe aus deinem buch gewählt, hatte vorher
> schon die sicherere, aber die funktionierte auch nicht... und da ich dachte das ich wahrscheinlich
> irgendwo nen fehler gemacht habe, habe ich dann auch die erste variante getestet :-)
>
> wäre dankbar wenn jemand meinen fehler finden würde :-) sonst bleibt mir wohl nur der strick *grins*




    Antwort schreiben


Antworten: