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