www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Attiny15 und Bascom


Autor: Sebastian Hansmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mit vor kurzem bei R. einige tiny15 bestellt.

Nun habe ich versucht das Ding mit Bascom zu programmieren. Das prog
lässt sich Kompilieren und fehlerfrei flashen - es läuft aber nicht!

das Testprog ist eigentlich ganz simpel und läuft auch aufm 8535:



do
set portb.0
wait 1
reset portb.0
wait 1
set portb.1
wait 1
reset portb.1
wait 1
loop


Warum gehts nicht???
Ich denke es liegt an Bascom.

Kann mir jemand helfen??

Autor: Jangomat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
beim Tiny15 sind ein paar Sachen bezügl. Fuses-Einstellung zu beachten.
Insbesondere die Oszillatorwahl und entsprechende Beschaltung sowie die
Behandlung des Resetpins müssen auf Deinen Aufbau passen.
Hast Du das schön artig beachtet?

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ausserdem musst du portb als ausgang konfigurieren und dem programm die
oszillator-frequenz mitteilen, damit der waitbefehl richtig ausgeführt
werden kann.

$crystal = xxxxxxxxxx
Config Portb = Output
.
.
.

Autor: ThomasB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und der Befehl " $Tiny " nicht vergessen.

$Regfile="at15.def.dat"
$Tiny
ddrb=255:Portb=255
.
.
.

Autor: günter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Les mal im BASCOM-Forum (bei Yahoo) nach, da läuft z.Zt.
eine Disskussion zu diesem Thema

Günter

Autor: Sebastian Hansmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die vielen Antworten.

Ich habe in dem Originalprog natürlich den Quarz angegeben und Portb
configuriert, aber mein tiny führt es nicht aus - werd es jetzt mal mit
AVR-Studio probieren.

Kann irgendwer vielleicht ein kleines ASM Beispielprog mal hier
reinstellen, wo raus hervorgeht, wie man einzelne Pins setzt und
rücksetzt?
Hab mich zwar in der Hochschule mit asm Programmierung rumschlagen
müssen, aber da haben wir x86 programmiert und das ist schon eine ganze
Weile her (man wird alt ;) )

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab dasselbe Problem.
Ihr habt zwar Nette Antoworten, worauf ich achten muss.
Aber wie, das schreibt ihr leider nicht.
WAS muss ich bei den Fusebits einstellen???
WAS muss ich beim Resetpin beachten??
WAS muss ich bei der Oszillatorfrequenz beachten??

Der hat doch eh selbst 1,6MHz, habs in Bascom auch angegeben.
Auch den $tiny befehl habbich geschrieben.
config Portb.x =output auch

wenn ich nen Port setze, gehts auch
aber danach WAIT 1 z.B. machter gaanich.
Gut, der hat angeblich keinen RAM, weiss nich wien CPU ohne RAM
klarkommen kann, bin ja kein ing.
Aber hab gelesen der Tiny15 soll auch RC5 geschichten
hinbekommen......
Ob DAS bei mir jemals läuft.....

Autor: Sebastian Hansmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also folgendes:

Ich habs lange mit Bascon versucht: Tinys ohne RAM lassen sich nicht
mit BASCOM proggen. Warum es nicht geht weiß ich auch nicht, aber ich
habe mir bei www.atmel.com das AVR-Studio runtergeladen und alles mit
ASM programmiert, und es läuft bestens.
Also: einen Kumpel haben, der einem ASM erklärt,
Automatisierungstechnik studieren oder Buch lesen (keine Angst ASM ist
gar nicht so schwer wie es aussieht)


Bei den Fusebits brauchst du garnix einstellen und den Resetpin musst
du mit einem Widerstand auf 5V ziehen (Anschluss eines 8535 auf dem
Schaltplan für das AVR Board auf www.mikrocontroller.com )

Autor: Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was habt ihr denn nur immer mit den Fuses??? Die sind doch das Letzte,
woran man sich vergreift! Das macht man doch erst, wenn man sicher und
souverän mit dem Teil umgeht. Gab es hier nicht schon genug Fälle, wo
per Fuses ISP (oder Reset) deaktiviert wurde, ehe das erste Programm
richtig lief?

Der Tiny12/Tiny15 läuft so, wie er ausgeliefert wird!

Wenn man den internen Oszillator nicht kalibriert, dann läuft er eben
langsamer, so um die 1MHz. Dann reichts zwar nicht für eine Stopuhr,
funzt aber zum Spielen mit Ports, Timern, INTs, ADCs und was es sonst
noch alles gibt.

Also: AVR-Studio an, ASM-Programm schreiben, BUILDen, Doppelklick auf
die (roten) Fehlermeldungen im Output-Fenster, Hilfe befragen (F1),
"Aha" sagen oder konkrete Frage hier stellen.... Irgendwann werden
die Fehlermeldungen immer weniger, dann hilft Debuggen (Simulation)
weiter und erst dann gehört das Programm ins FLASH des AVR.

Wenn das alles sicher klappt, dann mal um die Kalibration des
RC-Oscillators kümmern und diese ins Programm einbauen. Und dazu ist
immer noch keine Manipulation der Fuses erforderlich!

Die ersten ASM-Schritte findet man in den Tutorials hier oder bei den
AVR-Freaks.

MfG, Heinz

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Allaska,
Gut, ASM ist noch son fremdes Ding, aber ma schaun, sollte ich mir mal
angucken. Das mit den Fueses dachte ich mir so.
Und das mit dem kalibrieren, naja.
Son paar eher wohl Paar (haha) Befehle gehen mit bascom ja.
Aber damit kann man ja wohl NIX anfangen.
Und wie man den Kalibiert, keine Ahnung, egal.
DANKESCHÖN, das hat geholfen.
Gruß, Carsten

Autor: Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Kalibrieren riss ich an, um zu zeigen, dass es beim Tiny12
und Tiny15 wichtigere Dinge als die Fuses gibt. Und ohne Kalibration
läuft das Ding halt keine 1,2 bzw. 1,6MHz sondern eben ungefähr 1MHz
(Herstellungstoleranzen). Aber es läuft!!!

Assembler dürfte eigentlich leichter sein als BASIC, denn der gesamte
Befehlssatz und I/O-Bereich ist im Datenblatt verständlich
aufgelistet.

BASIC mag nicht schlecht sein, aber erst, wenn man etwas ASM kennen
gelernt hat, denn mit BASIC allein (also ohne jegliche ASM-Kenntnisse)
bekommt man den Überblick über die Architektur des AVRs (und damit über
seine Möglichkeiten und Grenzen) kaum.

MfG, Heinz

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.