- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Assembler Mega16 Timer Probleme

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Anzeige

    E-Bike
    BINGO!!
    Zitat Zitat von Wsk8 Beitrag anzeigen
    Schonmal so versucht?

    .org PORTB_INT0_vect ; Vector adress
    rjmp SW1_ISR
    Genau das ist es!
    Aber warum funktioniert das dann beim Tiny13 und beim Mega8 ohne dem .org !?!?!??
    Da ich dort bislang immer so programmiert habe (mit RJMP und RETI) und keine Probleme damit hatte, kam ich auch nicht auf die Idee es hier anders zu machen.
    Somit scheint der Mega16 doch etwas anders zu arbeiten.
    [edit]:
    Hab mir die Vectortabellen von T13/M8 und M16 nun genau angeschaut:
    T13 und M8 sind gleich: $000, $001, $002, ...!
    M16: $000, $002, $004, ... !!!
    [endedit]

    DANKE für die rasche Hilfe !!!

    - - - Aktualisiert - - -

    Das eigentliche Problem ist behoben!
    Aber etwas hängt da noch:


    Zitat von wkrug
    Denk auch dran die JTAGEN Fuse zu deaktivieren, sonst gehen ein paar Ports von PORT C nicht richtig.
    Was ist damit? Was muss ich machen, damit die C-Ports (bei mir digitale Eingänge 0/1) richtig funktionieren?
    Geändert von HeSt (29.09.2013 um 17:04 Uhr)

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Du gehst einfach auf den Fuses-Reiter und stellst sicher, dass JTAGEN nicht aktiviert ist.
    http://dl6gl.de/sites/default/files/...e_bits_neu.jpg

    mfg

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    OK, danke!

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Defaultmässig ist das JTAG ( Debugging Interface ) bei einem fabrikneuen ATMEGA 16 aktiviert.
    Das JTAG Interface sitzt auf 3 Pins von Port C. Welche das genau sind müsste ich jetzt im Datenblatt nachschauen.
    Dadurch reagieren die Ports nicht so wie man das erwarten würde. Das hat mich schon mal 2 Tage sucherei gekostet.
    Wenn Du natürlich einen JTAG Debugger / Programmer benutzt musst Du Die Fuse natürlich im Auslieferungszustand belassen.
    Normalerweise benutzen aber Hobbyisten eher ISP.
    In der Elektor haben sie auch schon mal eine Heizungssteuerung mit nem ATMEGA 32 vorgestellt.
    Eventuell kannst Du dir da ein paar Anregungen holen.

    Nur mal so ein paar Anregungen:
    Ich würd auf jeden Fall einen RTC Chip mit einbauen, damit Du auch Sachen wie Nachtabsenkung und andere Uhrzeit gesteuerte Funktionen realieren kannst und nicht auf das interne Timing des Controllers angewiesen bist.
    Auch ne serielle Schnittstelle zum PC wär ne gute Idee ( FT232R !? ) , um Parameter auslesen und auch mal verändern zu können.
    Mit Tasten auf der Steuerung ist das oft ne üble Fummelei.
    Als Display wär eventuell ein grafisches schön.
    Bei Pollin gibts die 128x64 LCD Displays zum günstigen Preis.
    2x16 Zeichen Displays sind auch nicht teuer.
    Du kannst Dir auch mal den AVR-NET-IO Bausatz von Pollin angucken.
    In den Sockel passt ein MEGA16, 32 oder 644. Damit sind dann auch Webserver Anwendungen möglich.
    Die Heizungsparameter vom Büro aus abfragen zu können hat doch auch was.
    Relais und periphere Elektronik müsste man da auf nem huckepack Bord unterbringen.

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Danke für die Erläuterung bzgl. der JTAG-Sache!

    Zu den Anregungen:
    Lassen wir die Kirche im Dorf !!!
    Die Heizung ist relativ alt (es zahlt sich kein großer Aufwand dafür aus) und deren Elektronik hat vor 2 Jahren den Geist aufgegeben.

    Damals waren mir die kleinen schwarzen programmierbaren Käfer noch nicht geläufig. Deshalb habe ich auf die Schnelle (musste ja irgendwie heizen) mit einem 741er und einigem Drumrum die Heizung wieder zum Leben erweckt.
    Das lief/läuft so gut, dass ich mich erst jetzt daran mache, das "Profisorium" mit dem Mega16 abzulösen und aufzuwerten.
    Du erkennst schon, dass es sich um kein großes Unterfangen handeln kann, wenn derzeit noch nur ein 741er werkelt.

    Die alte Elektronik war was ganz einfaches: die Kesseltemperatur (Brenner) wurde von einem Thermostat geregelt, der sich am Kessel befindet. Also fixe Vorlauftemperatur (ca. 70°) unabhängig von der Außentemperatur. Die Raumtemperatur wurde über ein Raumthermostat eingestellt und die Elektronik regelte die Temperatur über den Mischer. Eine Nachtabsenkung hatte das Ding auch - über eine mechanische Uhr.

    Die 741er Lösung arbeitet derzeit nur mit der Kesseltemperatur abhängig von der Außentemperatur ohne Mischerverstellung (=offen).
    Eine Nachtabsenkung hat sie auch: wird über eine externe Uhr gesteuert (eine dieser Steckdosenuhren um 5 Euro), die für jeden Tag einen Programmspeicher hat und einen für "oben drüber" - hat sich besten bewährt. Genau diese Uhr kommt auch wieder bei der neuen Steuerung zum Einsatz. Sehr einfach, effektiv und kostengüstig - mit 1 Monat Gangreserve bei Stromausfall!

    Die neue Lösung berücksichtigt nun Außen-, Kessel- und Raumtemperatur, arbeitet mit Kesseltemperatur und Mischer, hat über die externe Uhr eine für jeden Tag einzeln programmierbare Nachtabsenkung, steuert mir auch das Warmwasser, ob von Solar oder Heizung mit allen dazu gehörenden Wenn's. Winter/Sommer-Automatik oder manuell. Programmier- und steuerbar von der Wohnung aus.

    Den Mega16 brauch ich nur wegen der vielen Anschlüsse. Von der Programmgröße (Flash) würde der Mega8 auch reichen, weil keine Schnickschnacks geplant sind wie Display oder PC-Anbindung. Das ist mir derzeit auch noch zu hoch. Da bin ich viel zu wenig firm mit den AVR's und mach auch zu wenig. Eben nur dann, wenn etwas ansteht.

    Danke jedefalls für die Hinweise wo ich mir Anregungen und Lösungsansätze holen kann !!!

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Hallo Leute,
    bin nochmals da.

    Für meine Anwendung ist 1MHz ein bisschen schnell. Gibt es eine Möglichkeit die Prozessorgeschwindigkeit weiter zu verringern (<1MHz) OHNE externe clock!? Also internal clock.

    Der Fuse Calculator (http://www.engbedded.com/fusecalc) lässt keine zu.
    Was aber nichts heißt, denn beim Tiny13 kennt er auch keine speed zwischen 128KHz und 4,8MHz, obwohl 16KHz, 600KHz und 1MHz sehr wohl möglich sind!!

    Danke im Voraus für eure Hinweise
    LG Heinz

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Kannst du den Tiny nich einfach schlafen legen und per timer alle paar ms aufwecken?

    Ansonsten sehe ich keine möglichkeit weniger als 1/8 takt zu erhalten. Außer ein externer Quarz. Und selbst dann ist nicht gewährleistet, dass es mit solch geringen Takt noch läuft.
    Geändert von robin (04.11.2013 um 14:39 Uhr)

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von HeSt Beitrag anzeigen
    Für meine Anwendung ist 1MHz ein bisschen schnell.
    Warum?

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  9. #19
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Zitat Zitat von Klebwax Beitrag anzeigen
    Warum?

    MfG Klebwax
    Ich habs noch nicht probiert, aber rein vom Gefühl bekomme ich zeitliche Probleme mit all meinen Timern und Verschachtelungen.
    Hab eh überall Prüfungen eingebaut - so ich logisch keine übersehen hab ...
    Ich will es einfach VORHER wissen, ob eine niedrigere Taktfrequenz möglich ist. Und wenn ja, elche Fusebits dafür zu setzen sind.
    Denn wenn ich tatsächlich in Zeitprobleme laufe, möchte ich sofort probieren können und nicht erst dann fragen gehen ...

    @robin,
    beim Tiny13 hab ich eh kein Problem. Allerdings setze ich da die Taktfrequenz (so ich eine benötige die nicht im "fusecalc" aufscheint) nicht per Eingabe der Fuse-Werte (wie denn auch, kenne sie ja nicht), sondern über das Franzis-Lernpaket (LPMikros), wo die Taktfrequenzen angegeben sind, nicht aber welche Fusebits dabei gesetzt werden. Und LPMikros kann das leider nur für den Tiny13.
    Hier gehts aber um den Mega16.

    LGH

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Verwirrung.....Timer von Mega16 mit Bascom
    Von JensB im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 05.06.2008, 11:10
  2. Timer-Programmierung an Mega16
    Von ThomasF im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 06.10.2005, 17:48
  3. Timer beim Mega16
    Von maw_hn im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 22.08.2005, 10:03
  4. Probleme Mega16 Timer1 Interrupt
    Von skyrider im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 16.04.2005, 15:49
  5. AT MEGA16 Timer Problem
    Von Markus Krepper im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 24.10.2004, 22:51

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress