Forum: Mikrocontroller und Digitale Elektronik Attiny15 und Bascom


von Sebastian Hansmann (Gast)


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??

von Jangomat (Gast)


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?

von anfänger (Gast)


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
.
.
.

von ThomasB (Gast)


Lesenswert?

... und der Befehl " $Tiny " nicht vergessen.

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

von günter (Gast)


Lesenswert?

Hallo

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

Günter

von Sebastian Hansmann (Gast)


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 ;) )

von Carsten (Gast)


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.....

von Sebastian Hansmann (Gast)


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 )

von Heinz (Gast)


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

von Carsten (Gast)


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

von Heinz (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.