Frage zur Porterweiterung von Frank Link

OP #2090419
Lesenswert?
• ▲
▼
Hallo,
ich hoffe der Thread ist noch nicht zu alt. Habe aber auch nur eine 
grundlegende Frage.

Erstmal danke für die gute Porterweiterung.

Meine Frage ist, dass void com74hc595_out() muss immer dann aufgerufen 
werden wenn ich irgendetwas im Port ändern will. Ausgang True, False 
etc.
Was hat es für ein Nachteil wenn ich diesen Output zyklisch am Ende 
meines Programmes mache, also nicht immer, wie du im Beispiel, hinter 
jeder Aktion. Kann dabei der 74HC595 kaputt gehen wenn er das schieben 
zu oft macht?

Dein Beispiel

        for ( int i = 0; i < com74hc595_BYTES; i++ )
  {
      com74hc595_setBit( i );
----->      com74hc595_out();
            _delay_ms( 2000 );

      com74hc595_unsetBit( i );
------>      com74hc595_out();
            _delay_ms( 2000 );
  }

Vielen Dank
OP #2090426
Lesenswert?
• ▲
▼
Bischen doofes Beispiel merke ich gerad...

Also:
Soetwas:
   if(Taste_plus)
      {
              AusgangSetBit(0);
    AusgangOut();
      }
  else if ( Taste_rechts )
    {
              AusgangUnsetBit(0);
    AusgangOut();
      }

Könnte mann ja auch so schreiben:


   if(Taste_plus)
      {
              AusgangSetBit(0);
      }
  else if ( Taste_rechts )
    {
              AusgangUnsetBit(0);
      }

  AusgangOut();
#2090430
Lesenswert?
• ▲
▼
Markus P. schrieb:
> Meine Frage ist, dass void com74hc595_out() muss immer dann aufgerufen
> werden wenn ich irgendetwas im Port ändern will.

Ja und Nein 'void com74hc595_out()' ruft man nicht auf nur 
'com74hc595_out()'. Ansonsten ja.

Markus P. schrieb:
> Was hat es für ein Nachteil wenn ich diesen Output zyklisch am Ende
> meines Programmes mache, also nicht immer, wie du im Beispiel, hinter
> jeder Aktion. Kann dabei der 74HC595 kaputt gehen wenn er das schieben
> zu oft macht?

Kaputt gehen kann da nichts. Es kann die Funktion des Programms 
beeinträchtigen - dazu müsste man allerdings genaueres (Link, etc) zu 
den erwähnten Funktionen haben.
An deinem Wissen gemessen möchte ich mir aber die Einschätzung erlauben, 
dass der Autor dieser Funktionen wohl mehr Erfahrung als du hast. Ich 
empfehle dir das AVR Tutorial. 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
OP #2090440
Lesenswert?
• ▲
▼
> Ja und Nein 'void com74hc595_out()' ruft man nicht auf nur
> 'com74hc595_out()'. Ansonsten ja.

Schreibfehler, sorry


Ich weiss auch nicht warum ich den link vergessen habe...:

http://www.mikrocontroller.net/articles/Porterweiterungen#Porterweiterung_.C3.BCber_74HC595_.28Ausgang.29_3


> Kaputt gehen kann da nichts. Es kann die Funktion des Programms
> beeinträchtigen - dazu müsste man allerdings genaueres (Link, etc) zu
> den erwähnten Funktionen haben.

Ja das ist klar er geht nach jedem Zyklus in die Funktion, frißt dann 
unnütz Zykluszeit. Das ist dann aber auch der einzige Nachteil oder?

> An deinem Wissen gemessen möchte ich mir aber die Einschätzung erlauben,
> dass der Autor dieser Funktionen wohl mehr Erfahrung als du hast.

Du hast Recht !!!
#2090658
Lesenswert?
• ▲
▼
Hallo Markus,
habe erst gerde Deine Frage gesehen.

Markus P. schrieb:
> Meine Frage ist, dass void com74hc595_out() muss immer dann aufgerufen
> werden wenn ich irgendetwas im Port ändern will. Ausgang True, False
> etc.

Korrekt

> Was hat es für ein Nachteil wenn ich diesen Output zyklisch am Ende
> meines Programmes mache, also nicht immer, wie du im Beispiel, hinter
> jeder Aktion. Kann dabei der 74HC595 kaputt gehen wenn er das schieben
> zu oft macht?

Keinen Nachteil, in meinem Beispiel wird ein Lauflicht abgebildet.

Grundsätzlich ist es egal, ob Du jeweils nur ein Bit änderst und das an 
den Baustein übergibst oder ob Du eine Reihe von Bits änderst und das an 
den Baustein übergibst. Es ist letztlich die Frage der Aktion die Du 
durchführen willst.

Gruß
Frank

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.