Hallo,
Bin neu hier :),
erstmal ein dank an das super Forum :) und natürlich auch einen Gruß an
die Forengemeinde.Ich stelle mich kurz vor, heiße Nico komme aus der
nähe von Bad Kreuznach, Rheinland-Pfalz bin 19 und angehender
Elektroniker für Betriebstechnik.Soviel dazu, nun mein Problem ich würde
gerne das Programmieren lernen also ich bräuchte vorerst nur den Tiny
13, Sprache unwichtig am besten so einfach wie möglich.Wird also nicht
oft gebraucht und wenn auch nur einfache Dinge ich werde dann bei meinen
weiteren Projekten bei diesm Chip bleiben oder nochmal neu anfangen zu
lernen.Und zwar soll es ein LED Blitzer werden der 2 KSQ ansteuert so
das sie blinken wie in einem Flugzeug, das heißt das eine LED soll einen
Doppelblitz machen, das andere einen einfachen jewals eine halbe sekunde
Pause ( wird aber ausprobiert was am besten passt.)Mein Problem ist es
das ich es nicht hinbekomme ein Programm dafür zu schreiben, habe das
Lernpaket Mikrocontroller aber naja es will nun nicht so wie ich möchte,
brauche ein paar Basics, wäre super wenn Jemand in der Umgebung mal Zeit
hätte und Lust (auch gegen eine Aufwandsentschädigung) mir ein wenig
unter die Arme zu greifen.
Vielen Dank im voraus,
Gruß,
Nico :)
Guck dir das AVR-GCC-Tutorial oder das AVR-Assembler Tutorial an. Links
oben auf dieser Seite. Wenn du das gewissenhaft durcharbeitest bringt
dir das weit mehr als jedes unter die Arme greifen. Fragen kannste dann
hier stellen.
Nico schrieb:> Lernpaket Mikrocontroller
Das wird hier kaum einer kennen.
Welche Programmiersprache benutzt es?
Was hast Du damit schon programmiert?
Der ATtiny13 kann zwar einiges, aber naturgemäß sind Anfänger nicht so
dolle darin, effizienten und Ressourcen schonenden Code zu schreiben.
Ein ATmega88 hat da schon deutlich mehr Luft oder ein ATtiny44.
Peter
Für schnelle und einfache Entwicklung ohne große Einarbeitung empfiehlt
es sich einen möglichst großen Mikrocontroller zu nehmen, da kann man
dann zur Not auch in einer richtig hohen Sprache seinen Code schreiben.
Z.B. mit dem GNUBLIN Board von
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=1296
kannst du in Python, Lua & Co deine LEDs blinken lassen. Da ist die
Einstiegshürde deutlich geringer. Und auf der Homepage gibt es jede
Menge Anleitungen und Beispiele. (Letzteres ist kein Argument gegen den
Tiny, sondern eine Feststellung über das GNUBLIN Board.)
Grüße Thilo
Nico schrieb:> Und zwar soll es ein LED Blitzer werden der 2 KSQ ansteuert so> das sie blinken wie in einem Flugzeug, das heißt das eine LED soll einen> Doppelblitz machen, das andere einen einfachen jewals eine halbe sekunde> Pause
Ich weiß zwar nicht, was "KSQ" sind, aber einen Blitzer für einen Heli
habe ich vor gut 6 Jahren mal geschrieben, allerdings noch für den
Tiny12. Da Du ja mit Hilfe Deines Lernpaketes "lernen" willst, kannst Du
ja den Quelltext im Anhang analysieren und an den Tiny13 und Deine
Anspüche anpassen.
Zur Analyse des Quelltextes empfiehlt sich, das Datenblatt des Tiny12
griffbereit zu haben und die Funktion der Register und deren Bits darin
nachzuschlagen. Wenn Du an irgendeiner Stelle nicht weiter kommst,
kannst Du gerne konkrete Fragen stellen.
...
Hannes Lux schrieb:> Ich weiß zwar nicht, was "KSQ" sind,
Konstantstromquellen.
Liest du etwa keine "LED-ohne-Vorwiderstand-Threads"?
Hannes Lux schrieb:> Da Du ja mit Hilfe Deines Lernpaketes "lernen" willst, kannst Du> ja den Quelltext im Anhang analysieren
Das ist aber harter Tobak für einen Newbie mit (Bascom-)Lernpaket.
Denke mal es geht um das von Franzis.
@Nico (Gast)
Basiert das nicht sogar auf Atmega88? Da kann man sich doch auch erstmal
mit austoben und was Lauffähiges zustande bringen. Das dann auf einen
8-Pin-Tiny zu kriegen, ist das kleinere Übel. Gibt auch noch was anderes
als die alten Tiny13. Auch mit mehr Speicher: 25/45/85.
mfg.
Im Franzis Lernpaket für den ATTINY 13 ist doch ein LED- Blinker drin.
Wenn man lesen kann, sollte es kein Problem sein, den zum Laufen zu
bringen.
Das zur Programmierung verwendete MCBASIC ist einfach und bringt schnell
die gewünschten Ergebnisse. Also für mich war dieses Lernpaket ein
schneller und leichter Einstieg.
...ich habe über das "Lernpaket Mikrocontroller" damals auch meine
ersten Schritte mit den AVRs gemacht.
Das Lernpaket was ich habe,hat kein MCBASIC (oder sonst was exotisches)
genutzt, sondern ganz normalen AVR-Assembler, insofern solltest Du hier
was die Software betrifft, auf große Fachkenntnis stoßen. Das beigelegte
Handbuch bietet auch m.E. einen sehr guten Einstieg.
Die Hardware ist (bis auf den Tiny13) allerdings "proprietär". Das
flashen des MC ist in der Schaltung nur mit dem Programm von Franzis
möglich.
Was genau funktioniert denn nicht ?
Bekommst Du denn ÜBERHAUPT ein Programm in der Schaltung zum Laufen ?
Gruß
Tom
Thomas Eckmann schrieb:> Konstantstromquellen.
Danke, diese Abkürzung war mir nicht bekannt, obwohl ich weiß, wie
Konstantstromquellen funktionieren...
> Liest du etwa keine "LED-ohne-Vorwiderstand-Threads"?
Nein, schon lange nicht mehr. Da kann man doch sowiso nicht helfen weil
ja immer wieder einer daherkommt, der behauptet, dass LEDs an konstanter
Spannung betrieben werden, möglichst noch parallel.
Thomas Eckmann schrieb:> Das ist aber harter Tobak für einen Newbie mit (Bascom-)Lernpaket.
Aber gut geeignet, zu zeigen, dass ein AVR kein Multimediakonsumgerät
ist und dass beim Kauf eines Lernpaketes noch lange nicht das zum
Benutzen erforderliche Wissen mitgekauft wurde. Ich halte diese
Lernpakete für Abkassiererei, sie suggerieren Erfolg ohne Wissen bzw.
Fleiß, die meisten landen auf dem Müll, ehe das erste (eigene) Programm
darauf läuft.
Und nein, ich beschäftige mich nicht beruflich mit AVRs, ich hatte auch
keine Ausbildung bezüglich Mikrocontroller und auch kein Lernpaket.
Daher bevorzuge ich auch Assembler, ist auf kleinen Systemen mit
begrenzten Ressourcen irgendwie eindeutiger und berechenbarer als
Hochsprachen.
...
Hallo,
danke für die unglaublich vielen posts :) echt super also ja das eig
problem für mich ist es das Programm so hinzubekommen wie ich es brauche
, das flashen und so mit vorgeschriebenen Programmen nach Anleitung hat
geklappt.Das Lernpaket war kostenlos, von meiner Firma weil Geld hätte
ich dafür nicht bezahlt, es zeigt zwar ein paar Sachen und gibt codes
vor aber etwas eigenes kann man damit auf keinen Fall entwickeln, ein
Tiny 13 muss es sein weil ich davon 1. 20Stück habe 2, es klein sein
muss und alles auf dieser Schaltung basiert, bzw sie ist identisch außer
das ich anstatt eine KSQ 2 ansteuern möchte
http://www.roberts-r2d2-bau.de/fmblightsanticollbau.htm.
Ich habe es einfach nachgebaut, da ich nicht die 100% nötige erfahrung
hatte mit was und wie ich es machen sollte also nicht die nötigen
Kenntnise so etwas rein aus dem Kopf ohne hilfe zu entwickeln.Da diese
Schaltung für meie zwecke passt und leicht veränderbar ist dachte ich
mir nehme ich sie , die teile habe ich auch alle hier also fehlt eig nur
das nötige Programm.Ein anderes Problem ist wohl auch das ich keine
Ahnung der Befehle hab also eine art Libary wäre da nicht schlecht was
diese können.Ich werde mich mal durch einige hier gepostet Links
lesen.Den Code von der Seite hatte ich probiert nur mein Bascom-Avr
hatte Probleme gemacht anfags bis ich 2 werte herabgesetzt hatte einmal
Framestack und Hw stack auf 10, dann ging es zwar zu speichern und
simulieren nur habe ich es nicht hinbekommen es so zu speichern das ich
es mit LP Mikros flashen kann.Da das Paket ja bezügl. Flash soweit ich
weiß an die Platine gebunden ist bzw habe ich nur eine Nachbildung der
Platine meines Meisters, der sie geätzt und gebohrt sowie das Layout
erstellt hatte.Also kurz und knapp brauch ich mal so ein paar Seiten wo
alles sage ich mal erklärt wird was man dazu braucht , wo man Befehle
findet, wie diese kombiniert werden müssen, welche Sprache die beste
ist.Im Vordergrund stehen keine komplexen Programme, lediglich LED
Blinkereien (vorerst).Ob Bascom oder Assembler oder C ist mir egal , da
ich bei keiner Grundkenntnisse habe.
Vielen Dank :)
Gruß,
Nico
Naja, du kannst ja mit LPMikros auch nur Programme flashen, die in den
Kontroller reinpassen, ohne das der 'Bootloader' überschrieben wird.
Leider hat das Lernpaket anscheinend keinen Modus, der das flashen eines
beliebigen Codes ermöglicht (notfalls mit Setzen der Reset Brücke).
Dazu kommt noch, das die mitgelieferten Programme nich wirklich schön
geschrieben und kommentiert sind. Bitmuster werden einfach als Bytes
geschrieben, Konstanten kommentarlos mitten im Code plaziert - alles
nicht wirklich beispielhafter Code, vor allem in einem 'Lernpaket' zu
einem völlig überhöhten Preis.
Wenn du aber erstmal damit weitertesten willst, denke daran, PORTB.2
dauerhaft auf high zu legen, damit der 'Bootloader' (ist nicht wirklich
einer, aber nennen wir in mal so) nicht aktiv wird. Oder du schaltest am
Anfang deines eigenen Programmes PORTB.2 gleich auf Ausgang und high.
Dann sollten Tiny13, die mit der Lernpaket Mimik programmiert wurden,
auch stand alone laufen.
Hallo,
also ich habe ja das Programmierinterface, funktioniert das auch mit
anderen Programmen also das flashen weil ich hab ja einfach nur ein
serielles Interface.Bzw gibt es Programmen zu flashen oder sollte man es
gleich in AVR Studio machen, ich weiß auchnicht genau wie ich alles
einstellen muss das es funktioniert, steht das auch in dem Tutorial ?.
Ich hab schonmal das AVR tut angeschnitten, wo bekomme ich nun die
ganzen Parameter her und die Auswirkung.Gibt es eine liste ? bzw libary
?.
vielen dank :),
Gruß,Nico
Du kannst die Franzis Mimik auch nur mit den Programmen von Franzis
benutzen. Es erfordert einige Klimmzüge, um mit AVR Studio Programme zu
schreiben und sie dann mit dem Franzis LP in den Kontroller zu
programmieren. Vor allen Dingen musst du die Syntax mit dem
Programmstart wie in den mitgelieferten Beispielen in deine AS Projekte
übernehmen.
Das beste wirds wahrscheinlich sein, dir einen Programmer zuzulegen, der
direkt von AS unterstützt wird, z.B. den AVRISP MkII. Dann noch ein
kleines Programmieradapter, mit dem du Tiny12/13/25/45/85 programmieren
kannst, die haben alle die gleiche Pinbelegung.
Ich habe mir dazu ein kleines Board mit einem 8-pin Sockel und dem
6poligen ISP Anschluss gebaut, was aus USB gespeist wird.
Nö, Matthias stimmt nicht: Er kann sehr wohl andere Programme als die
mitgelieferten Franzis- Programme laden und ausführen.
Wenn er alle Franzis- Programme durch hat, kann er die kostenlose Demo-
Version von BASCOM aus dem INET holen und gleich eigene Programme
schreiben umd mit dem Franzis- Programm auf den TINNY 13 übertragen.
Ich habe mir einen RS232 Programmieradapter Adapter gebaut nach der
Franzis Vorlage gebaut mit dem ich alle TINNY 13 und auch andere TINNY -
Typen programmiere. Den Bootlader braucht man hierzu nicht, den kann man
überschreiben und - wenn ich mich richtig entsinne- auch bei Bedarf
wieder laden d.h. er ist auch auf der mitgelieferten CD vorhanden.
Nö schrieb:> Nö, Matthias stimmt nicht: Er kann sehr wohl andere Programme als die> mitgelieferten Franzis- Programme laden und ausführen.
Jaja, das habe ich ja auch oben schon angedeutet. Allerdings ist es
damit immer noch nicht möglich, die Fuses zu setzen und z.B. die Tinys
mit voller Geschwindigkeit oder externem Quarz/Takt laufen zu lassen.
Wie gesagt, für die ersten Schritte mag das LP ganz nett sein, aber auf
längere Sicht ist ein richtiger Programmer nicht zu umgehen. Und der
Tiny 13 mit BASCOM und 1.6 Mhz? Das macht keinen Spass.
Glücklicherweise hatte ich das LP geschenkt bekommen, sonst hätte ich
mich sehr geärgert, auch über die schlechte ASM Programmierung. Würde
man eines dieser Programme hier zur Diskussion stellen, würden sich die
meisten mit Recht über die Syntax beschweren.
Matthias Sch. schrieb:> Und der> Tiny 13 mit BASCOM und 1.6 Mhz? Das macht keinen Spass.
Das (1,6 MHz) ist auch nicht möglich, der rennt ab Werk mit 9,6 MHz und
Vorteiler 1:8, also mit 1,2 MHz.
Das ist aber nicht zwingend, denn man kann ihn auch ohne
Fusebit-Manipulation schneller (oder langsamer) takten, denn die
CKDIV8-Fuse bewirkt nur eine Voreinstellung des System-Taktvorteilers
CLKPR auf 1:8. Diese kann jedoch jederzeit durch das Programm im AVR
geändert werden. Dazu ist in CLKPR das Bit für die Schreibsperre (Bit 7)
zu setzen, und sofort darauf zweimal hintereinander der neue Wert für
den gewünschten Vorteiler zu schreiben. Das sind also ganze 3
I/O-Zugriffe. Weitere Infos bietet das Datenblatt des Tiny13 unter dem
Suchbegriff CLKPR. Aber Datenblätter lesen ist ja soooo uncool...
Ich hänge als Beispiel mal den Bascom-Quältext einer Rundumleuchte mit 6
LEDs und Poti an, wo der System-Taktvorteiler per Software auf 1:1
eingestellt wird, damit der Tiny13 mit 9,6 MHz taktet.
...
Hallo,
danke für die zahlreichen Antworten, leider verstehe ich davon nur sehr
wenig, mir geht es garnicht um solche Aktionen mit taktung und sowas.Ich
möchte ja erstmal nur Das Led über PWM oder so blinken lassen,dass es
einen Doppelblitz macht und das andere, welches dann noch dazu kommt
einen einfach , das beste ist ich lese erstmal so eine Erklärung der
ganzen Sachen wie z.b fusebits usw.Ich muss betonen , dass ich von
Mikrocontrollertechnik überhaupt keine Ahnung habe und vorher noch nie
programmiert habe.
Gruß,
Nico :)
Hannes Lux schrieb:> also mit 1,2 MHz.
Is ja noch schlimmer.
Hannes Lux schrieb:> Dazu ist in CLKPR das Bit für die Schreibsperre (Bit 7)> zu setzen, und sofort darauf zweimal hintereinander der neue Wert für> den gewünschten Vorteiler zu schreiben. Das sind also ganze 3> I/O-Zugriffe.
Super - und hängst im gleichen Augenblick die gesamte Bootloadermimik
ab, weil die Programmierer zur Baudratenerzeugung Taktzyklen zählen und
nicht mal den Timer benutzen. Das ist doch fernab von der Praxis, um
nicht 'Mist' zu sagen. Immerhin will Nico seine LEDs blitzen lassen und
sich mit dem Tiny13 beschäftigen, weil er davon so viele hat, und sich
nicht mit dem Sinn oder Unsinn des F-LPakets beschäftigen.
Hannes Lux schrieb:> Aber Datenblätter lesen ist ja soooo uncool...
Nö, eigentlich nicht. Hab jetzt aber das vom Tiny13 nicht dahingehend
untersucht. Persönlich bevorzuge ich eh die modernen Nachfolger
25/45/85. Übrigens ist das Ende des ATTiny13 nahe, es wartet der
Tiny13A.
Matthias Sch. schrieb:> Super - und hängst im gleichen Augenblick die gesamte Bootloadermimik> ab, weil die Programmierer zur Baudratenerzeugung Taktzyklen zählen und> nicht mal den Timer benutzen. Das ist doch fernab von der Praxis, um> nicht 'Mist' zu sagen.
Na Du musst es ja wissen...
Ich habe lediglich Deiner falschen Aussage widersprochen, dass der
Tiny13 mit 1,6 MHz laufen würde und man ohne Änderung der Fusebits damit
leben müsse.
Bootloadermimik? - Ich übertrage die Programme per ISP.
Matthias Sch. schrieb:> Persönlich bevorzuge ich eh die modernen Nachfolger> 25/45/85.
Tiny85 nutze ich selbstverständlich auch, da wo sie hinpassen (z.B.
Soundmodul für Diesellok oder Dampflok). Aber für Kleckerkram wie
Blinker, Rundumleuchten, RC-Schaltmodule, Servo-Ansteuerungen usw.
reicht der Tiny13 völlig aus. Man muss nicht immer mit Kanonen auf
Spatzen schießen.
> Übrigens ist das Ende des ATTiny13 nahe,
Ja, es naht das Ende der Welt...
> es wartet der> Tiny13A.
Ja und? Habe ich bereits in Benutzung. Ist doch kompatibel. Wo ist das
Problem???
...
Auch auf die Gefahr hin gelüncht zu werden...
Vielleicht ist ein Blick auf den MSP430 interessant. Besorg Dir das
LauchPad
(http://e2e.ti.com/group/msp430launchpad/m/project/default.aspx) für
$4,30 und lade Dir CCS5.1 MCU herunter
(http://www.ti.com/tool/ccstudio&DCMP=dsp_ccs_v4&HQS=Other+OT+ccs). Das
LaunchPad ist ein kleines Entwicklungsboard für kleine MSP430
Microcontroller die den Atmel AVR uC an Performance locker ebenbürtig
wenn nicht überlegen sind. Und ausserdem kann man mit dem LaunchPad und
CCS5.1 die MSP430 super debuggen, was bei den AVRs mit dem AVRISP mkII
nicht möglich ist.
Mann muss sich jedoch mit dem umfangreichen CCS anfreunden (Eclipse
basierend) und C/C++ programmieren - was jedoch zu empfehlen ist, da in
der uC-Welt C/C++ der Standard ist.
Einziges Manko ist, das die MSP430 uC für den Otto-Normalverbraucher
eher schlecht zu besorgen sind.
Hi
>Auch auf die Gefahr hin gelüncht zu werden...
Aber nicht weil du MSPs vorschlägst, sondern weil du anscheinend unfähig
bis eine Situation zu erfassen.
MfG Spess
MSP430 Benutzer schrieb im Beitrag #2681542:
> Vielleicht ist ein Blick auf den MSP430 interessant.
Für mich nicht, da ich gern mit mehr als 3,3V arbeite...
...
Wie schön hier alle auf die Bedüfnisse des TE eingehen...
Also der ATtiny13 soll es sein, mit dem hab ich such schon so einiges
angestellt. Ich programmiere ihn in C, und es passt durchaus einiges
rein, zumindest im Vergleich zu dem geforderten Blinker.
In diesem Forum wirst Du am meisten Hilfe bei C oder Asm finden. Ich
bevorzuge ersteres, weil es komfortabler ist.
Ich glaube, das Board beim Lernpaket ist recht schlicht (um es mal
freundlich auszudrücken) und funktioniert wohl nur mit der
mitgelieferten Software (wenn ich das richtig verstanden habe), ich
empfehle einen moderneren Programmer, kostet auch nicht viel. Ich
benutze am liebsten meinen mySmartUSB light (15 E, lässt sich von vielen
IDEe direkt benutzen), aber es geht auch noch billiger.
An Software benutze ich AVRstudio 4 (IDE) und WinAVR (C-Compiler,
AVRstudio kann den einbinden), die neueren AVRstudios haben den Compiler
wohl schon dabei, alles kostenlos.
Ich denke, Dein nächster Schritt sollte sein, Dich für eine Sprache zu
entscheiden, dann kann Dir konkreter geholfen werden.
Hallo,:)
geht ja echt schnell hier mit den Antworten :) also ich werde dann
wahrscheinlich C nehmen, da Assembler zu schwer zu verstehen ist und ich
etwas universales möchte.So ich werde mich dann nun erstmal einlesen im
laufe der Tage, also ein paar erklärungen suchen von allen Fachbegriffen
usw.Werde mich dann nochmal melden, muss ja von 0 anfangen habe ja
keinerlei Vorerfahrung diesbezüglich also Fachbegriffe etc.
Gruß,
Nico
Nico schrieb:> also ich werde dann> wahrscheinlich C nehmen, da Assembler zu schwer zu verstehen ist
Schreibs in C und werfe ab und zu einen Blick auf das Assemblerlisting,
was man vom Compiler generieren lassen kann. Dabei lernst du Assembler
auch ein wenig kennen und siehst u.A., wie bestimmte C-Schreibweisen als
Assemblercode aussehen. Es kann nicht schaden, sich in diesem Bereich
etwas Hintergrund anzusehen, ist aber für Bastelzwecke nicht unbedingt
ein "Muss".
Einen guten Start in C bekommst du aber nicht gleich bei der
µC-Programmierung. Vieles ist dort nur über "Stützkrücken" und
Erweiterungen der Sprache erreichbar. Schreib erstmal ein paar
Kommandozeilen-Progrämmchen auf dem PC, um die Sprache kennenzulernen.
Es kann aber auch sein, dass dir C unmöglich unlogisch erscheint. Dann
kannst du z.B. Bascom probieren, wenn dir Basic und dessen Dialekte
besser liegen.
mfg mf
Moin!
Für unsere Modellbahn habe ich mal eine Disko in einem tiny13
programmiert.
Der µC steuert drei farbige LEDs in der Helligkeit und feuert
unregelmässig und unabhängig zwei ultrahelle, weiße LEDs als Blitzer ab.
Vielleicht kannst Du Dir dort etwas abgucken, ausschneiden ... etc.
Der tiny läuft mit internem Takt ohne DIV8-fuse.
Ach ja: Die Kommentare im Code stimmen nicht immer mit dem Code überein
:-/
Gruß
Jobst