Hi Leute,
bin neu hier und wollte mich in diesem Sinne bei euch vorstellen
natürlich direkt auch mit einer frage...
Also ich bin Anfänger ünd würde gerne einen Countdown-Zähler aus je 4
7-seg. Anzeigen bauen (kein LCD-Display) habe zuhause eine Atmega8515
rumfliegen und wollte ihn dafür nutzen auch wenn er dafür warscheinlich
etwas zu überdimensioniert ist. Hatte auch mal gegooglet und habe ein
Projekt einer Uhr gefunden. Habe den Schaltplan (siehe Anhang) nach
gebaut und wollte lediglich den Code des µC ersetzen. Hab also meinen
mit Bascom geschrieben und in dann mit PP auf den µC gebrannt ging super
nur leider bleiben die seg. dunkel was hab ich falsch gemacht???
> siehe Anhang
Wo ist der?
> Hab also meinen mit Bascom geschrieben und in dann mit PP auf den µC> gebrannt ging super nur leider bleiben die seg. dunkel was hab ich falsch >
gemacht???
Keine Ahnung,kenn mich mit Bascom leider nicht so aus. Wo war nochmal
der Schaltplan? Zeig dochmal die Quellen, dann kann dir hier sicher
jemand helfen.
Sorry das mit dem Anhang hat grade nicht geklappt...
hier der neue Versuch ;-)
Sowie die Page wo ich es gefunden hab
http://blackstrom.derschwarz.de/avr/avr_uhr/index.shtml
In die Hauptschleife lautet bei mir:
Do 'Start
Hauptschleife
If Z1_sekunde = 0 And Z2_sekunde = 0 And Z1_minute = 0 And Z2_minute = 0
Then
Portd.1 = 1 'Pin wird
auf High, also 5V geschaltet
Waitms 1000
Portd.1 = 0 'Pin wird
auf Low, also 0V geschaltet
Waitms 1000
Portd.1 = 1 'Pin wird
auf High, also 5V geschaltet
Waitms 1000
Portd.1 = 0 'Pin wird
auf Low, also 0V geschaltet
Waitms 1000
Else
If Z1_sekunde > 0 Then
Z1_sekunde = Z1_sekunde - 1
Else
Z1_sekunde = 9
If Z2_sekunde > 0 Then
Z2_sekunde = Z2_sekunde - 1
Else
Z2_sekunde = 5
If Z1_minute > 0 Then
Z1_minute = Z1_minute - 1
Else
Z1_minute = 9
If Z2_minute > 0 Then
Z2_minute = Z2_minute - 1
End If
End If
End If
End If
End If
Waitms 1000
' ### Uhr stellen ###
' Wird der Taster "T_min_stellen" betätigt werden die Minuten um eins
erhöht.
' Wird der Taster "T_h_stellen" betätigt werden die Stunden um eins
erhöht.
' Werden beide gleichzeitig betätigt werden Stunden und Minuten auf Null
gesetzt.
' Wird einer der Taster länger betätigt (> 150ms) gibt es einen
schnellvorlauf
If T_min_stellen = 0 Then 'Wird
"T_min_stellen" betätigt
Waitms 150 'Entprellen
If T_min_stellen = 0 Then 'Ist der
Taster immer noch betätigt
Incr Z1_minute 'wird Minute
um eins erhöht
Z1_sekunde = 0 'Sekunden
auf Null setzen
Z2_sekunde = 0
End If
End If
If T_min_stellen = 0 And T_h_stellen = 0 Then 'Wenn
"T_Min_stellen" und "T_H_stellen" gleichzeitig betätigt
Z1_minute = 0 'dann werden
Minuten und Stunden auf 0 gestzt
Z2_minute = 0
Z1_sekunde = 0
Z2_sekunde = 0
End If
Loop 'Ende
Hauptschleife
End 'Programm
Ende
die Varieablen sind bei mir auch etwas anders wie man sied. Natürlich
habe ich auch in der Deklaration des µC
$regfile = "m8515.dat"
$crystal = 4000000
eingegeben.
Über eure hilfe wär ich sehr dankbar da ich echt noch ein µC Neuling
bin...
als erstes:
der Code ist kompletter Mist.
Nimm nen Timer und dessen Interrupt, um das Display anzusteuern (10ms
Interrupt etwa), nebenbei ist das dein Zeitgeber für die Uhr.
Ansonsten seh ich keine keinerlei Ansteuerung des Displays - kein
Wunder, wenn das nicht funktioniert:-)
Hi crazy horse,
also danke für deine Antwort aber glaube du hast mich nicht richtig
verstanden....
1. ich möchte KEIN Display verwenden sondern insge. 4 * 7Seg.-Anzeigen
2. Das mit dem PortD1 soll bei 00:00 ein blinken erzeugen sprich wenn
der Counter runtergelaufen ist soll eine LED blinken...
3. Ist warum ist mein code mist was hab ich falsch gemacht hast du
vielleicht eine Idee???
Meine obige Schleife ist natürlich nur in verbindung mit dem auf
blackstrom stehenden Code zubringen.
Aber im Anhang ist mein gesammter Code nochmal in na txt-Datei...
In dem Link oben und in deinem PDF sehe ich nur den Schaltplan für einen
Aufbau mit einem anderen AVR. Es würde Sinn machen, wenn du exakt deinen
Aufbau skizzieren würdest. No panic, das muss kein pikkobello 1a
Schaltplan sein.
Mach auch Angaben zu den verwendeten Bauteilen insbesondere den
7-Segmentanzeigen (PDF, Link oder wenigstens Teilebezeichnung und
-nummer). Nach dem Originalplan sollen das Common-Anode Anzeigen sein,
die ca. 20 mA pro Segment abkönnen.
Was hast du an Test- und Messmöglichkeiten? Multimeter für
Spannungsmessungen an den Displays und Strommessungen durch die
Transistoren? Low-Current-LED-Logik-Spion? LED-Tester für die Anzeigen?
Bis das Multiplexing für vier Anzeigen sicher arbeitet, würde ich erst
mal nur mit einer Anzeige oder gar mit 1-4 Einzel-LEDs arbeiten. Nicht
dass per Sourcecode mehrere Anzeigen gleichzeitig aktiv sind.
@ crazy horse
In dem nachträglich beigebrachten Code (counter.txt) sind zwei Timer
Interrupts benutzt. Timer0 fürs Multiplexing und Timer1 für die
Zeitbasis. Bascom wäre nicht meine erste Wahl, ich bin bekennender
C-ler, der seit kurzem mit Python fremd geht, aber warum nicht...
Unabhängig von der Programmiersprache sieht man leider schlecht, was
Originalcode (angenommen getestet und funktionsfähig) und was Änderungen
von Michael (ungetestet und möglicherweise fehlerhaft) sind. Ich bemühe
mich bei Änderungen den Originalcode als Kommentar o.ä. stehen zu
lassen.
Hallo Stefan
Schaltplan ist mit meinem identisch nur das ich den 8515 verwende also
sprich ich habe die Anschlusspins verändert... z.B. RESET , Ports usw.
Die Segmentanzeigen sind auch die die du erwändt hast (so wie bei
blackstrom)
Der Punkt ist, daß man auch bei der Verdrahtung (z.B. Steckbrett) vertun
kann. Solange Du keine exakte Beschreibung, also Schaltung oder
Screeshot von Deinem Aufbau schickst, kann Dir wirklich niemand weiter
helfen. Gruß
Stefan "stefb" B. wrote:
> Low-Current-LED-Logik-Spion? LED-Tester für die Anzeigen?
Hallo,
wollte mal fragen was du mit "Low-Current-LED-Logik-Spion" meinst?
Danke
Gruß
Die professionelle Version nennt sich Logiktester und ist dafür
ausgelegt die zu untersuchende Schaltung möglichst wenig (gar nicht) zu
stören/belasten, in dem z.B. ein sehr hoher Eingangswiderstand benutzt
wird und die eigentliche Anzeige (LEDs an/aus) nicht aus der Schaltung
gespeist wird. Spezialfeatures können z.B. einmalige, schnelle
Pegelwechsel (Spikes) fangen und anzeigen.
Billiger Selbstbau der Einfachstversion z.B. für +5V wäre
^^
+)------###----|>--------------(-
>1K5 Low-Current-LED
Bei + und - kann man Krokoklemmen oder eine Pieksnadel oder ....
anbringen. Low-Current, weil man da bei geringen Strömen um 1 mA bereits
was sieht (in der Bastelbude, nicht Draussen).
Das Ding kann man an Leitungen klemmen, bei denen man vermutet, dass ein
HIGH Pegel anliegt. + an fragliche Leitung und - an GND. Wenn ja, sieht
man das (wenn sich die Pegel nicht zu schnell ändern).
Kann man auch an Leitungen klemmen, bei denen man vermutet, dass ein LOW
Pegel anliegt und ggf. dort angeschlossene ICs ca. 1-2 mA abkönnen. + an
Vcc und - an fragliche Leitung. Wenn ja, sieht man das (wenn sich die
Pegel nicht zu schnell ändern).
Man kann es auch an Leitungen klemmen, an denen man voraussetzt, dass
Vcc dort anliegt. + an fragliche Leitung und - an GND. Wenn ja, sieht
man das.
Und man kann es auch an Leitungen klemmen, an denen man voraussetzt,
dass GND dort anliegt. + an Vcc und - an fragliche Leitung. Wenn ja
sieht man das.
Das Umklemmen kann man sich sparen, wenn man zwei LEDs gegenpolig,
parallel einbaut.
Bei anderen Spannungen (z.B. -12V beim spionieren an TX /RX von RS232)
muss man den Vorwiderstand anpassen.
Stefan "stefb" B. wrote:
> Die professionelle Version nennt sich Logiktester und ist dafür> ausgelegt die zu untersuchende Schaltung möglichst wenig (gar nicht) zu> stören/belasten, in dem z.B. ein sehr hoher Eingangswiderstand benutzt> wird und die eigentliche Anzeige (LEDs an/aus) nicht aus der Schaltung> gespeist wird. Spezialfeatures können z.B. einmalige, schnelle> Pegelwechsel (Spikes) fangen und anzeigen.>> Billiger Selbstbau der Einfachstversion z.B. für +5V wäre>> ^^> / /> +)------###----|>--------------(-> >1K5 Low-Current-LED>
Vielen Dank
Gruß Paulo