Hi, ich hab einen 74HC595 und an den Ausgängen eine 7-Segmentanzeige ich weiß aber nich wie ich am SERIN eine Bitfolge eingeben kann. könnt ihr mir helfen? MfG Schalli
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Porterweiterung_f.C3.BCr_Ausg.C3.A4nge Gruß, Magnetus
Ja danke das hab ich mir schon durchgelesen und ich hab auch verstanden wie das teil funktioniert, ich weiß nur nich wie ich eine Bitfolge über SERIN schicken kann, mit c-programmierung. Also der reine Quellcode. MfG Schalli
willst du das denn per SPI ansteuern, oder willst du beliebige Ports nutzen? wenn ich hier im Forum nach "Porterweiterung 595" suche, kommen 147 Threads, die das alle behandeln. da werden bestimmt auch Code-Beispiele dabei sein, welche mit dem 595 irgendwelche 7-Segment-Anzeigen ansteuern, denn ich nehme an daß du nicht nur wissen möchtest wie man da Daten reintaktet, sondern wier man die Daten so aufbereitet bekommt, daß da auch die richtigen Segmente zum richtigen Zeitpunkt aufleuchten?
Ja ich möchte es mit beliebigen ports ansteuern, Wegstaben Verbuchsler schrieb: > denn ich nehme an daß du nicht nur wissen möchtest wie man da > Daten reintaktet, sondern wier man die Daten so aufbereitet bekommt, daß > da auch die richtigen Segmente zum richtigen Zeitpunkt aufleuchten Ja genau das würde ich gerne wissen.
ich hab mir mal die relevanten durchgelsen ,war aber für mich denke ich nich wirklich was dabei. hast du denn ne idee?
welche der 147 Threads hast du denn bsiher schon durchgestöbert, und bei welcher Fragestellung hängst du? Die Antwort ob SPI oder nicht hast du dir und mir auch noch nicht beantwortet. Auch ist von dir nicht genannt worden, welche Segmente du wie ansteuern möchtest. Da solltest du dir vorher Gedanken drüber machen. "Meistens" ist es halt so, daß du z.B. bei Übergabe einer "0" in einer Schieberegister-7-Segment-Emuations-Ausgabe-Routine auch die entsprechenden Segmente ansteuern möchtest (Segment a,b,c,d,e,f), so daß dir folgendes dargestellt wird: - | | | | - Desgleichen auch für die "anderen Ziffern" 1..9. Was du mit der Eingabe sonstiger Übergabe-Werte machst, bleibt erst mal dir überlassen, z.B. könnte ja die Eingabe von 17 folgendes dargestellt werden (3 Striche) etc. - - - Insgesamt könnte man bei 7 Segmenten 2^7 "Symbole" darstellen (oder gar 8 wenn du den Dezimalpunkt hast und mit rechnest, dann natürlich 2^8). Ob du das machen möchtest weißt nur du, oder ob du nur "0" .. "9" darstellen möchtest. PS: Du könntest dir z.B. auch ein "7-Segment Lauflicht" bauen, bei dem folgende Segmente nacheinander aufleuchten: a,b,c,d,e,f,DP. Das würde die Software-Ansteuerung natürlich deutlich vereinfachen ....
Noch ein Hinweis zu deiner ursprünglichen Frage "weiß aber nich wie ich am SERIN eine Bitfolge eingeben kann" "rein technisch" ist es recht einfach: wiederhole so oft wieviele Bits du schieben möchtest lege das einzuschiebende Bit an SER an mache einmal "ritsch-ratsch" bei SCK (0-1-0) wenn alles reingeschoben ist: mache einmal "ritsch-ratsch" bei RCK (0-1-0) Wenn du das im "Bit-Bang-Modus" machst (also nicht-SPI) mußt du alles "händisch" machen, ansonsten übernimmt dir SPI einen Teil der Arbeit
also ich will das nicht über spi machen sondern über beliebige ports, wie ich das reinlogisch mache das ich in SERIN eine Bitfolge eintakten kann weiß ich, dass was ich nicht weiß ist wie ich das in einem c-Code umsetzte.
> was ich nicht weiß ist wie ich das in einem c-Code umsetzte.
Welche Segmentwe willst du denn wie ansteuern, d.h. WAS möchtest du denn
darstellen? (frug ich um 15.04.2011 12:26)
NAchtrag: Hohoho, es gibt sogar einen Schaltplan .... ich schrrubbel
hier schon 1 Stunde an der Glaskugel rum, na das macht doch die Sache
etwas transparenter ;-)
ich würde dir auch den ganzen schaltplan zeigen aber der passt nich aufs bild idee ist eig. nen simplen taschenrechner zu basteln der erstam plus und minus rechnen kann, also will ich einfach zahlen darstellen. und zur probe, wollte ich eig mal eine zahle z.b. 3 darstellen
wieviele Segmente willst du den anschließen? Möglicherweise mußt du ja auch das Symbol "-" darstellen wollen (bei negativen Zahlen)
also ich will am ende 8 segmente an 8 595 anschließen, und das mit dem minus will ich auch machen.
wenn du willst kann ich dir den kompletten schaltplan ma hochladen? is ne eagle schaltplan
zum einen hab ich kein Eagle, zum anderen erlaubt dem Vernehmen nach Eagle auch den Export nach png,jpg oder pdf, was jeder dann lesen könnte. Wichtig sind eigentlich nur die Verschaltungen der Schieberegister mit deinem Controller, d.h. welches Bit des Controllers ist an welcher Leitung der Schieberegister-Sache angeschlossen? Die Kaskadierung von einem 595 auf das nächste 595 ist ja "selbsterklärend" Hier mal ein paar initiale Definitions-Schnipsel, wie das bei mir aussieht: // Nutzung der folgenden Leitungen: // Port B5 = SHIFT_Data = SER [74595 Pin 14] // Port B7 = SHIFT_Clock = SCK [74595 Pin 11] // Port B6 = SHIFT_Strobe = RCK [75595 Pin 12] #define SHIFT_DATA 5 // Port PB5 #define SHIFT_CLOCK 7 // Port PB7 #define SHIFT_STROBE 6 // Port PB6 DDRB |= (1<<SHIFT_DATA) | (1<<SHIFT_CLOCK) | (1<<SHIFT_STROBE); // setzt Port-Pin als Ausgänge fest PORTB &= ~((1<<SHIFT_DATA) | (1<<SHIFT_CLOCK) | (1<<SHIFT_STROBE)); // setze Port-Pin auf Low-Pegel // PORTB &= (1<<SHIFT_DATA); // 0 auf Datenleitung ausgeben // PORTB |= (1<<SHIFT_DATA); // 1 auf Datenleitung ausgeben // 0-1-0 an Clock schiebt das an Data stehende Bit um eine Registerstelle weiter // // 0 steht eh schon initial an // PORTB |= (1<<SHIFT_CLOCK); // kurzer 1 Impuls // PORTB &= ~(1<<SHIFT_CLOCK); // und wieder auf 0 zurück setzen // 0-1-0 an Strobe überträgt die eingeschobenen Daten nach draußen // // 0 steht eh schon initial an // PORTB |= (1<<SHIFT_STROBE); // kurzer 1 Impuls // PORTB &= ~(1<<SHIFT_STROBE); // und wieder auf 0 zurück setzen Das ist jetzt mal aus einem Tiny2313. Pass das mal bezüglich der Definitionen auf dein Mega8 an, und ergänze mal um die von dir anscheinend auch noch genutzte "Gate" Leitung.
Noch ein Hinweis: Wenn du die 7-Segemnt-Anzeigen direkt mit dem 595 ansteuerst, wirst du eventuell Strom-Probleme bekommen (der 595 kann vielleicht nicht genug liefern). Du solltest also schon wissen, wieviel Strom deine Segmente brauchen ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.