-         

Ergebnis 1 bis 6 von 6

Thema: DS1307/ATmega168 Schaltuhr macht Probleme

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1

    DS1307/ATmega168 Schaltuhr macht Probleme

    Anzeige

    Hallo Freunde !
    Wieder brauche ich mal die Hilfe erfahrener "alter Hasen", es geht um die Zeitauswertung. Den Code gibt es hier :http://robot.oderlachs.de/garduino/schaltuhr.html.

    Ich kann einfach die Zeit nicht auswerten, weiss nicht was ich da falsch mache ? Ich gestehe den Code aus dem Web zu haben, aus einem funktionierenden Beispiel und auch das es meine erste I2C Anwendung ist

    Kann mir wer einen Tip geben??

    Gruss und Dank Gerhard

    Ergänzung:
    Es ist so einiges Auskommentiert, jetzt sollen erst mal nur die LED's am PortD.2 + 3 im 30sec. Rhytmus abwechselnd leuchten...(Testschaltung)

    Dieses RTC Modul wird verwendet
    Geändert von oderlachs (07.06.2013 um 09:45 Uhr)
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von oderlachs Beitrag anzeigen
    Code aus dem Web zu haben, aus einem funktionierenden Beispiel und auch das es meine erste I2C Anwendung ist
    Such' Dir gescheiten Code, denn der ist Müll. Ein Auszug
    Code:
    void i2c_start()
    ...
    ddr_scl_hi;
    ...
    scl_hi;
    Hier wird der Pin zu SCL aktiv getrieben, also auf Ausgang & High gesetzt. Bei I2C wird per Standard dagegen nur auf Low gezogen, das High wird durch Pullups erzeugt, das erlaubt dann den Bausteinen Clock-Stretching, bei dem der Slave den Clock verlängert. Kannst Dir dann vorstellen, was passiert, wenn der Slave auf Low zieht und der Master aktiv High treibt.
    Warum nimmst Du nicht die Hardware I2C Unit, die der ATM168 ja hat und baust mit 'ner Software I2C rum?
    aus einem funktionierenden Beispiel
    Hat das Beispiel bei Dir funktioniert, oder wird dem Beispiel nur nachgesagt, dass es funktioniert?
    Ist die Hardware in Ordnung?

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1
    Hallo Magic !
    Danke für die Hinweise, das Funktionieren des Beispiels war auf Youtube zu sehen un im Foto...
    Wie gesagt es ist das erste Mal, das ich mich auf dem Boden von AVR und I2C bewege. Die Hardware ist OK das TinyRTC Modul arbeitet richtig(arduinoerprobt), Das STK 500 und auch der µC ist darauf in Ordnung....Aber das ganze soll ja dann auf einen andern Bord dann laufen (OlimexProtoboard P40-USB).
    Na ich werde noch probieren...hoffendlich dabei auch lernen, nur drängt das ganze eigendlich sollte es schon funktionieren.
    Möchte auch nicht noch das Geld für eine wirklich funktionierende Industrieschaltuhr ausgeben, von Baumarktschaltuhren habe ich die Nase bzw. den Mülleimer voll.

    Warum nimmst Du nicht die Hardware I2C Unit, die der ATM168 ja hat und baust mit 'ner Software I2C rum?
    Weil das RTC-Modul batteriegepuffert ist und mit Spannungsabschaltungen zu rechnen ist....
    Anders rum möchte ich das auch mal verstehen + sehen wie es richtig so geht.

    Gruss Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von oderlachs Beitrag anzeigen
    Danke für die Hinweise, das Funktionieren des Beispiels war auf Youtube zu sehen un im Foto...
    Selbst wenn's gehen sollte, halte ich nichts von schlechtem Code.
    Die Hardware ist OK das TinyRTC Modul arbeitet richtig(arduinoerprobt)
    Also der Schaltplan, verglichen mit dem Datenblatt der DS1307Z (Beispiel Maxim) schaut äußerst kreativ aus. Ein Widerstand auf den Quarz, ein Vorwiderstand (Spannungsteiler?) zur Batterie...
    Wo findet man denn so etwas?
    Möchte auch nicht noch das Geld für eine wirklich funktionierende Industrieschaltuhr ausgeben, von Baumarktschaltuhren habe ich die Nase bzw. den Mülleimer voll.
    Warum rot?
    Weil das RTC-Modul batteriegepuffert ist und mit Spannungsabschaltungen zu rechnen ist....
    Was hat das Eine mit dem Anderen zu tun? Die Hardware I2C benutzt im Unterschied nur die eingebaute und funktionierende I2C Einheit des ATM168, im Gegensatz zu einer Soft-I2C.
    Anders rum möchte ich das auch mal verstehen + sehen wie es richtig so geht.
    Du sagst dass Du das Pingewackel verstehst, aber die Hardware-I2C nicht?
    Wie schon erwähnt, der Code ist schlecht programmiert und belegt, dass jemand, der's in Youtube einstellt hat, noch lange keine Ahnung davon haben muss, wie's richtig geht.

    Edit:
    Was sucht eigentlich das wdt_reset() im Code? Entweder der Watchdogtimer ist per WDTON Fuse ausgeschaltet, dann läuft er auch per Code nicht, da er dort nicht eingeschaltet wird. Ist er hingegen per Fuse eingeschaltet, dann läuft er in der Voreinstellung mit der kürzesten Auslösezeit (da nicht konfiguriert) und dann löst er spätestens bei _delay_ms(500) aus.
    Geändert von MagicWSmoke (07.06.2013 um 11:11 Uhr)

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1
    Hallo Magic !

    in allem kann ich Dir leider nicht folgen was Du damit meinst, leider. Ich habe mir ein neues Beispiel gesucht und denke das ich damit weiterkomme.
    ich werde über Sieg oder Untergang hier berichten.
    Mir ging es erstmal darum schnellstmöglich die Minuten-Schaltuhr fertig zu bekommen und zwar ohne Arduino, wo es ja schon lange mit funzt, zum Anderen gleichzeitig mich im Code schreiben zu üben, darum wollte ich eigendlich nichts ganz Fertiges.

    Warum ich was da in Rot schreibe, weil es mir auf die Funktionssicherheit ankommt , was ja bei Baumarkt- u.ä. Artikeln kaum gewährleistet ist.

    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von oderlachs Beitrag anzeigen
    in allem kann ich Dir leider nicht folgen was Du damit meinst, leider.
    Das was mir in Deinen Beiträgen schon mal ab und an auffiel, ist dass Du nicht auf die Diskussion eingehst und zu sehr über Belangloses schreibst.
    Hier z.B. müsstest Du halt sagen, was Du nicht verstehst und wo Du nicht folgen kannst, würdest Du das so machen, wäre Dein Lernerfolg größer.
    Ich weiß jetzt z.B. immer noch nicht, warum die Elektronik solche "Eigentümlichkeiten", aufweist, wie von mir angesprochen.
    Aber Du hast da offenbar für Dich entschieden, dass es ja auch mit dem Arduino klappt, also passt schon alles.
    Ich habe mir ein neues Beispiel gesucht und denke das ich damit weiterkomme.
    Du ruderst mit etwas neuem weiter, es würd' aber reichen, wenn Du's einmal gescheit lernst.
    Möchtest Du schon eine Soft-I2C nutzen, dann nimm doch die Peter Fleury Lib, die ist gut und allgemein bekannt.
    Warum eigentlich Soft-I2C? Auch das hast Du nicht nicht beantwortet.
    Der Grund, warum man Soft-I2C nimmt ist: wenn der µC kein Hardware I2C hat, wenn man einen weiteren oder mehrere I2C-Stra(ä)ng(e) will, oder wenn man die dezidierten SCL/SDA-Pins nicht frei hat.
    Ist das denn hier der Fall ?
    Mir ging es erstmal darum schnellstmöglich die Minuten-Schaltuhr fertig zu bekommen...
    Ohne die passenden Vorkenntnisse ist's halt nix mit schnellstmöglich.
    weil es mir auf die Funktionssicherheit ankommt , was ja bei Baumarkt- u.ä. Artikeln kaum gewährleistet ist.
    Dagegen ist auch Selbstgebasteltes nicht gefeit

Ähnliche Themen

  1. Attiny2313 macht Probleme
    Von unix1970 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 9
    Letzter Beitrag: 01.09.2011, 19:42
  2. Atmega8 macht Probleme
    Von Blackaffe im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 21.05.2011, 11:44
  3. DS1307 Batteriepufferung macht Probleme
    Von wassermann im Forum Sensoren / Sensorik
    Antworten: 12
    Letzter Beitrag: 10.01.2011, 14:54
  4. Datum einstellen mit Atmega168 und DS1307 funktioniert nicht
    Von bapitz im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 20.03.2009, 01:05
  5. Probleme mit UART und ATmega168, Dringend!
    Von Nils Wenzler im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 03.12.2007, 09:38

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •