mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tiny12 macht Probleme


Autor: Stefan Johnsson (xenon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich habe mir ein paar Tiny12's gekauft und wollte sogleich zum Test
eine LED blinken lassen. Wenn ich dieses Programm in einen Tiny13
brenne, dann funktioniert es auch tadellos(an PB0 blinkt die LED). Mit
dem Tiny12 sieht es da ganz anders aus: Wenn man den Kontakten des
Experimentierboardes näher kommt, leuchtet die Led teilweise kurz auf
aber von blinken ist trotzdem nichts zu sehen.

Könnte dies vielleicht an einem fehlenden Pull-Up am Reset oder
dergleichen sein? Sodass das Programm momentan ständig von vorne
beginnt?

An den Fuse Bits habe ich noch nichts geändern, d.h. der Tiny läuft
noch mithilfe des internen Oszillators.

MfG Xenon

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tiny12 und Tiny13 sind unterschiedlich mit Hardware ausgestattet, ein
Tiny13-Programm, was Tiny13-Hardware (Timer, ADC...) anspricht, wird
auf dem Tiny12 nicht laufen.

Ein funktionierendes Beispiel findest du zwei Mausklicks entfernt unter
fast dem selben Betreff:
http://www.mikrocontroller.net/forum/read-1-339481...

...

Autor: Stefan Johnsson (xenon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe das Programm in Bascom geschrieben und als regfile ist die

Tiny12def eingestellt. Daher müsste das Programm auch auf dem Tiny12
laufen. Zum Test habe ich die Hex (ohne die def zu ändern) in den
Tiny13 geschrieben und es lief. Das Problem liegt also am Tiny12

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> Das Problem liegt also am Tiny12

Das glaub' ich nicht...
Hast du den Link verfolgt und das Programm assembliert und getestet?

Für den Fall, dass du nicht selbst assemblieren kannst, hänge ich dir
die Hexdatei an. Berichte ob es klappt.

...

Autor: Stefan Johnsson (xenon)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe deine hex-Datei in den Tiny12 programmiert aber ohne
Erfolg :(

Dann habe ich noch einmal ein leichtes Blinklicht in Assembler
erstellt(es werden sicher keine Timer verwendet sondern nur leichte
Komponenten; bei Bascom bin ich mir da nicht so sicher) und in den
Tiny12 gebrannt. Wieder nur Reaktionen wenn man an den Drähten wackelt
aber kein blinken. Dann habe ich die Hex die eig die TN12def.inc
eingebunden hat in den Tiny13 gebrannt und siehe da die LED blinkt.

Der eine Tiny12 dürfte aber nich kaputt sein, da ich es bereits mit
zwei neuen von Reichelt getestet habe. Im Anhang ist die asm.

Mfg Xenon

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- Du hast eine geeignete Versorgungsspannung (5V)?
- Du hast einen Widerstand (3k..10k) vom Reset-Pin vach Vcc?
- Du hast einen Keramik-Kondensator 100nF direkt am AVR an Vcc-GND?
- Du hast geeignete Vorwiderstände (150 Ohm..1k) zwischen Portpins
  und LEDs?
- Du bist sicher, dass du die Fuses nicht verstellt hast?
- Du bist sicher, dass zu keinem Zeitpunkt eine höhere Spannung als
  5V oder eine verpolte Spannung angelegen hat?

Dann wirst du den Tiny12 wohl zum Schrott erklären müssen (aber nicht
in die Restmüll-Tonne werfen, das ist inzwischen verboten!).

Ich hatte einen neuen Tiny12, der hatte nach dem zweiten Flashen das
Problem, dass sich 3 Flash-Zellen nicht mehr löschen ließen. Die große
Masse lebt zwar länger, aber es kommt durchaus vor, dass mal einer
beizeiten stirbt.

...

Autor: Stefan Johnsson (xenon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schonmal vielen Dank für die Hilfe Hannes!

Also mit Pull-Up Widerstand am Rest-Pin hat der Assembler Code auch auf
dem Tiny12 funktioniert!!

Jetzt bleibt nur noch ein kleines Problem:

Und zwar funktioniert der Bascom-Code nur auf dem T13 nicht aber auf
dem T12. Der Code:

$regfile = "at12def.dat"
$crystal = 1200000

Ddrb = &B1

Do
Portb.0 = 1
Wait 1
Portb.0 = 0
Wait 1
Loop

Ich vermute, dass Bascom das wait mithilfe eines Timers in Assembler um
setzt und der Tiny12 nicht dazu kompatibel ist?!?

Gibt es eine andere Lösung?

Ansonsten muss ich halt das Programm in Assemlber verfassen, was in
diesem Fall auch kein Problem wäre. Jedoch für die Zukunft fände ich es
schön wenn der Tiny12 auch voll und ganz mit Bascom zu nutzen ist.

MfG Xenon

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Tiny12 kann unter BASCOM nur auf die Portpins zugreifen. Richtig
gesehen, kann man ihn mit BASCOM quasi nicht programmieren.

Ansonsten frag mich nicht zu BASCOM. Die mangelnde Transparenz ist der
Hauptgrund, warum ich diesen "Baukasten" meide, obwohl ich auf
anderen Plattformen fast nur in BASIC programmiere. Für kleine Projekte
auf AVRs lohnt sich eine Hochsprache nicht, für größere AVR-Projekte
taugt der Baukasten BASCOM nicht. Daher programmiere ich AVRs nur in
Assembler. Siehe auch www.hanneslux.de

...

Autor: Stefan Johnsson (xenon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok! Dann werde ich es in Assembler machen. Ich würde nur gerne wissen
wie es am besten/einfachsten geht den uC für ca 15 Stunden nichts
machen zu lassen. Geht das irgendwie mit einem Watchdog oder so?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Watchdog ist sehr ungenau. Nimm den Timer und realisiere eine Uhr.
Calibriere dazu den Oszillator, damit es wenigstens halbwegs genau
wird.

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.