Hi ich neu in Sachen attiny und wollte für ein bauprojekt den attiny26-16PU programmieren und wollte zum testen eine LED blinken lassen.
Meine Hardware:
-Attiny26-16PU
-Usbasp-clone
-Led mit vorwiederstand
software:
-Avrdude zum flashen
-Arduino IDE zum programm schreiben
Ich habe die hex Datei über Avrdude auf den attiny gespiel was auch geklappt halt laut der Rückmeldung von Avrdude(siehe Bild)
Leider Blinkt die Led nicht wenn ich sie anschließe und auch mit einem Multi Meter hab ich keine Veränderung an den Ausgabepins
Die LED ist an den Physischen Pin 9 angeschlossen und an GND
Theoretisch sollte dies passen.
Was sollte der Normalstand sein und wie kann man das festlegen. Ich glaube in Programm ist der Normalstand auf Low definiert wenn sie das meinen
Schaue dir bitte das Blink Beispielprogramm an und du siehst deine Fehler.
Außerdem kannst du die For-Schleife nicht im Setup laufen lassen, weil alles in Setup nur einmal ausgeführt wird.
Oke das mir dem Setup versteh ich aber was sie mit dem anderen Problem meinen fällt mir nicht ein wie gesagt bin neu was Microchips angeht
Aber danke schonmal für die hilfe
Nimm am besten einen Uno oder Nano (besser für Steckbrett).
Da ist die LED passend für die Beispiele schon drauf.
Arbeite dich durch die Beispiele durch.
Dokumentation und alles andere gibt es auf Arduino.cc
Wie gesagt ich bin nur neu mit Microchips mit einem nano schaff ich das. Ich wollte halt was neues ausprobieren und für ein Projekt einen attiny26-16 nutzten da es den in meinem lokalen Hardwarehandel zu kaufen gab. Ich Versuche mich hier nur weiterzubilden und Erfahrungen zu machen dabei ist man nun mal auf Erfahrung von anderen angewiesen. Deshalb habe ich ja auch hier diese Frage gestellt
LG und danke für die Antworten die haben mich auf jeden Fall fürs erste weitergebracht
Entschuldige wenn ich das jetzt so sagen muss, aber du hast das ganze System noch nicht verstanden.
Das zeigt mir deine For-Schleife im Setup. Die kann da niemals hoch zählen.
Übe doch besser noch mit den üblichen Boards und versuche besser erstmal das System zu verstehen, anhand der Beispiele.
Ich könnte jetzt noch mehr Details bringen, aber du wirst eh drüber stolpern.
Den Code habe ich mehrmals versucht mit Hilfe von ki anzupassen da ich nicht genau wusste wie ich die Pins definieren muss usw. da ich mich ja wie gesagt mit den attinys nicht auskenne das war halt die löung der ki gut hätte ich auch drauf kommen können aber ich lerne halt noch und ich möchte mir das Wissen halt einfach beibringen und für mein Projekt brauche ich halt einen attiny weil der arduino nano der ebenfalls verwendet wird zu wenig anschlüsse hat für mein Vorhaben somit möchte ich eine Kommunikation zwischen den beiden erstellen. Das Projekt war auch definitiv als Kernprojekt angesehen da ich darüber Versuche mehr über das genze zu lernen und als schüler fehlt mir halt einfach das wissen welches ich mir online einholen muss
ersucht mit Hilfe von ki anzupassen da ich
nicht genau wusste
Das scheint nicht eine strukturierte denkweise und lesen der Doku ersetzen zu können. Falls du das hier verlinkte framework nutzt, müsstest du D14 ansteuern, um am physischen PIN 9 eine ausgabe zu erhalten.
Den Code habe ich mehrmals versucht mit Hilfe von ki anzupassen da ich
nicht genau wusste wie ich die Pins definieren muss usw. da ich mich ja
wie gesagt mit den attinys nicht auskenne das war halt die löung der ki
gut hätte ich auch drauf kommen können aber ich lerne halt noch und ich
möchte mir das Wissen halt einfach beibringen und für mein Projekt
brauche ich halt einen attiny weil der arduino nano der ebenfalls
verwendet wird zu wenig anschlüsse hat für mein Vorhaben somit möchte
ich eine Kommunikation zwischen den beiden erstellen. Das Projekt war
auch definitiv als Kernprojekt angesehen da ich darüber Versuche mehr
über das genze zu lernen und als schüler fehlt mir halt einfach das
wissen welches ich mir online einholen muss
Sei mir bitte nicht böse, aber solche Textblöcke sind genau der Grund, warum der liebe Gott (oder war es der Deutschlehrer) das Komma erfand. Lass das doch mal auf Dich wirken und beantworte Dir die Frage, ob sauber gesetzte Kommas diesen Wust an Inhalt doch etwas besser hätte strukturieren können. Und dann denke mal darüber nach, ob der Deutschlehrer (vom lieben Gott können wir ja trotz mehrerer Jahrtausende einseitiger Kommunikation keine Antwort erwarten) nicht Recht hatte in den Versuchen, Dich auf eine professionelle Ausdrucksweise im Beruf, aber auch im allgemeinen Leben vorzubereiten.
Und Nein, man benutzt eine korrekte Schreibweise nicht nur in Ausnahmefällen, wenn man mit wichtigen Leuten redet. Man isst ja auch nicht nur dann mit Messer und Gabel, wenn man mit wichtigen Leuten zusammensitzt.
Der Code sieht o.k. aus, abgesehen davon, daß man Code nie als Bild postet, sondern als *.c oder *.ino.
Jede LED an den Arduino-Pins 0..5 sollte reihum 0,5s an sein und 5,5s aus.
Was davon nun welchem AVR-Portpin entspricht, mußt Du schon selber ermitteln. Dafür sollte es eine Doku geben.
Der physische Pin ist wiederum was ganz anderes, der hängt vom Gehäusetyp ab.
Man darf Pins auch so ansprechen, wie es im Datenblatt steht (A7..0, B7..0), dann fällt schonmal eine Fehlerquelle weg.
Ich auch.
Und ja: For-schleifen sind in setup() natürlich möglich.
(ein klein wenig) verkürzt sieht die main() in arduino so aus:
1
void main(){
2
setup();
3
while(1){
4
loop();
5
}
6
}
Mit anderen Worten: Auch wenn setup nur einmal durchlaufen wird, ist es eine ganz normale Funktion, in der - wie Peter bereits schrieb - alle normalen Sprachkonstrukte möglich sind. Darunter auch Schleifen.
PS: Auch dieses Beispiel läuft (auch wenn es nicht sonderlich sinnvoll ist, weil es loop() ad Absurdum führt)
In der Arduino-Welt sind sowohl setup() wie auch loop() "stinknormale" Funktionen, welche in der implizit vorhandenen main Loop nacheinander aufgerufen werden.
Was genau in setup() oder in loop() geschieht, ist nun wirklich wurscht. Ich habe gerade erfolgreich sowohl eine einfach Loop über 1000 Iterationen wie auch eine Berechnung der ersten 1000 Stellen von Pi in setup() durchgeführt, und natürlich funktioniert das einwandfrei.
Hi
Also, kurz gesagt, Setup ist ein Programmteil, in dem ein Controller eingerichtet wird und damit beim Starten 1x durchlaufen wird. Das heißt aber nicht, das da keine Schleife laufen darf wenn es doch sinnvoll wäre. Ich kann jederzeit in einem beliebigen Programmteil irgendwelche Schleifen laufen lassen. Nur das Setup darf natürlich nicht innerhalb des Hauptprogrammes wieder einbezogen werden. Und dann hat das eigentliche Programm die Möglichkeit, Timer zu nutzen, Ausgänge zu setzen und Eingänge zu lesen.
Nun zur Art der Programmierung. Klar, man kann mit Delay arbeiten, aber spätestens, wenn das Programm mal etwas sinnvolles machen sollte, sind Wartezeiten im Hauptprogramm unerwünscht. Man möchte doch bei der Bedienung nicht warten wollen, bis so eine Wartezeit abgelaufen ist und der Controller endlich den Programmteil aufruft, in dem er die Eingänge abfragt. Daher möchte ich Pascal den Rat geben, arbeite mit dem Timer. Allerdings kann ich dir in C nicht weiterhelfen, doch ich bin mir sicher, hier sind genügend Helfer, die dir da einen Tip geben können.
Gruß oldmax
Alle Vorredner haben "irgendwie" Recht, übersehen aber etwas, was der TO noch falsch gemacht hat!
1
// Vorsicht, nicht funktionierender Code hier !
2
void setup()
3
{
4
for (int i = 0; i< 6; i++) {
5
pinMode(i, OUTPUT);
6
}
7
}
8
9
// richtiger Code für Einstellung Standard PinMapping
10
11
#define led 14
12
void setup()
13
{
14
pinMode(led, OUTPUT);
15
}
In "setup" kann sehr wohl eine Schleife abgearbeitet werden. Allerdings, die Funktion pinMode(pin, mode) für "pin" keine Variable verarbeiten, das muß eine Konstante sein.
Weshalb der Compiler hier nicht meckert ist natürlich übel.
Zudem für den TO (ein weiterer Fallstrick):
Im Menü "Werkzeuge" gibt es für "Boards" und einem eingebundenen Core für ATtiny einen Punkt "Pin mapping". Hier kann angegeben werden, ob die Standardmethode der Pinnummerierung gültig sein soll (Arduino Notation). im Standard muß der Pin für physikalischen Pin Nr. 9 "14" heißen:
In "setup" kann sehr wohl eine Schleife abgearbeitet werden. Allerdings,
die Funktion pinMode(pin, mode) für "pin" keine Variable verarbeiten,
das muß eine Konstante sein.
Weshalb der Compiler hier nicht meckert ist natürlich übel.
Das Bild erklärt schonmal, warum Pin 9 nicht als 0..5 angesprochen werden kann.
Weiterhin wäre wichtig, ob es nur diese eine Zuordnung gibt und in welcher Lib das passiert.
Mein Russisch ist schon etwas eingerostet, um alles zu verstehen.
Allerdings,
die Funktion pinMode(pin, mode) für "pin" keine Variable verarbeiten,
das muß eine Konstante sein.
Bestimmt wer?
Man kann sich Bitmasken und Portadressen auch aus Tabellen holen. Ist zwar ne Menge Code, aber es geht. Die Ports sind ja auch als SRAM gemappt und nicht nur als IO.
Nimm am besten einen Uno oder Nano (besser für Steckbrett).
Da ist die LED passend für die Beispiele schon drauf.
Arbeite dich durch die Beispiele durch.
Dokumentation und alles andere gibt es auf Arduino.cc
Ja, es wäre das beste sich z.B. einen Arduino-Uno für den Anfang mit Blinkversuchen zu holen, falls man sich am Anfang schon für die Arduino-IDE entschieden hat – bei uns in Deutschland bestellt, kommt es nach 1-3 Tagen zu Hause an und dann wird das Teil via USB mit der IDE direkt verbunden, aber man kennt es ja von den Wackelkandidaten bestens – es wird einfach immer mit dem Kopf durch die Wand geschlagen, bis der Arzt kommt. Da werden lieber viele Wochen für Nichts vergeudet und seitenweise Beiträge dazu verfasst, nur um ein 5-Zeilen-Blink-Programm zum Laufen zu bringen oder den Port für die eigene LED zu finden, weil man von Anfang an so gut wie alles falsch entschieden hat und dann auch noch stur daran festhält, wenn Leute mit mehr Erfahrung einen anderen, besseren Weg aufzeigen möchten.
Ich weiß das es einfacher ist einen arduino nanu zu verwenden, ich möchte auch eigentlich kein Blinklicht bauen sonder etwas anderes wofür ich einen zweiten Microcontroller brauche da das ganze nicht groß sein soll dachte ich mir ich nutze einen attiny und mein lokaler Hardwareladen hatte halt nur den 2616pu da.
Und dann will ich mir Hilfe holen weil darüber nichts dokumentiert ist und viele sagen ich soll das lassen und lieber was anderes machen 🤷
Ich bin dankbar über die tollen Lösungsansätze aber alles andere ist einfach keine große Hilfe
Man kann sich Bitmasken und Portadressen auch aus Tabellen holen. Ist
zwar ne Menge Code, aber es geht. Die Ports sind ja auch als SRAM
gemappt und nicht nur als IO.
:-) stimmt absolut. Anfängerfreundlich ist das jedoch nicht! Einfach nur in einer Schleife den Wert einer Zählvariable an pinMode übergeben funktioniert jedenfalls nicht!
Das Bild erklärt schonmal, warum Pin 9 nicht als 0..5 angesprochen
werden kann.
Weiterhin wäre wichtig, ob es nur diese eine Zuordnung
Da waren wir schon. Es gibt 2 Zuordnungen: Standard und Legacy. Bei Standard wird der Arduinopinname erwartet (hier 14), bei Legacy den Portpinnamen (hier PB6).
Wie genau hast du das mit Tinycore gemacht? Weil bei mir gibts da den
attiny26-16PU nicht
Bei Datei=>Voreinstellungen siehst du, wo Arduino deine Sketches ablegt.
Öffne diesen Ordner. Hast du hier noch kein Verzeichnis hardware, erstellst du einen Ordner "hardware".
In diesen Ordner kopierst du den Inhal des Zif-Files aus
Bei Datei=>Voreinstellungen siehst du, wo Arduino deine Sketches ablegt.
Öffne diesen Ordner. Hast du hier noch kein Verzeichnis hardware,
erstellst du einen Ordner "hardware".
In diesen Ordner kopierst du den Inhal des Zif-Files aus
Ja, ist mir auch aufgefallen im 1. Posting von Frank. Aber das könnte
man evtl. ein wenig freundlicher ausdrücken.
Es gibt hier übrigens zweimal Frank O und es sind auch definitiv zwei unterschiedliche Personen.
Ich werde das ausprobieren.
Tatsächlich habe ich noch nie diesen Versuch unternommen, weil so was grundsätzlich nicht ins Setup von Arduino gehört.
Aber, dass ich grundsätzlich recht damit habe, dass der TO erstmal ein bisschen lesen muss und Beispiele durcharbeiten sollte, ändert selbst eine vielleicht doch hochzählende For-Schleife nicht.
Ich finde es immer wieder erstaunlich, dass man ohne jegliche Grundlagen so anfangen kann.
Man würde doch auch nicht in einen Jumbo-Jet ins Cockpit steigen, 300 Passagiere über den Atlantik fliegen wollen, nur weil man einem Sportflugzeug bei Start zugesehen hat.
Zumindest möchte ich dort kein Passagier sein.
Man würde doch auch nicht in einen Jumbo-Jet ins Cockpit steigen, 300
Passagiere über den Atlantik fliegen wollen, nur weil man einem
Sportflugzeug bei Start zugesehen hat.
Doch, genau diese Selbstüberschätzung ist heute allgegenwärtig.
:-) ich glaube bei keinem anderen Thema in der Mikrocontrollerwelt ist
etwas so extrem dokumentiert wie bei Arduino.
Da wird es "fast" schon schwierig, die entscheidende Information
herauszufiltern, weil einfach ewig viel geschrieben ist.
Vielleicht ist das ja im vorliegenden Falle das Problem.
Frank O. schrieb:
Doch, genau diese Selbstüberschätzung ist heute allgegenwärtig.
Das ist keines Wegs Selbstüberschätzung. Ich setzt mit halt Ziele und mein Ziel war es halt attinys kennen zu lernen. Mit arduinos schaff ich da das ist auch nicht das Problem, mein Problem lag ja darin damit bei mir ein Fehler im starten vorlag und das würde ja Jetzt gelöst. Und gaze ehrlich ich finde es schon sehr frech wie sich hier manche erwachsene Menschen verhalten. Ich bin auch nur eine Person und es tut mir leid dass ich als 15-Jähriger schüler nicht das auf die Idee gekommen bin das was mit dem Plugin nicht stimmt da ich mich wie gesagt erst angefangen habe mich mit attinys zu beschäftigen.
Und so leid es mir tut jeder fängt irgendwo mal an das war halt mein Start und da kann sich jeder gern drüebr lustig machen, aber die ist nun mal mein Hobby und ich bin immernoch erst 15 und so ein Verhalten von Erwachsenen gebildeten Menschen geht echt gar nicht so leid es mir tut. Die Jugend von heute ist die Zukunft da ist nun mal so. Ich möchte halt etwas aus mir machen damit ich früh Erfahrung sammeln kann und somit später einen hohen Schulabschluss und einen gut bezahlten Job bekomme. Und von diesem Geld muss ich dann die Rente zahlen für Leute die sich über meinen Start in die attinys lustig machen...
Ich hoffe diese Nachricht bringt sid mal dazu zu überdenken mit wem sie wie online schreiben und wie sie dort mit anderen Leuten umgehen, vor allem mit Jugendlichen und Kindern. Sie wissen nie wie sehr solche Nachrichten andere verletzen können...
Frank O. schrieb:
Doch, genau diese Selbstüberschätzung ist heute allgegenwärtig.
Das ist keines Wegs Selbstüberschätzung. Ich setzt mit halt Ziele und mein Ziel war es halt attinys kennen zu lernen. Mit arduinos schaff ich da das ist auch nicht das Problem, mein Problem lag ja darin damit bei mir ein Fehler im starten vorlag und das würde ja Jetzt gelöst. Und gaze ehrlich ich finde es schon sehr frech wie sich hier manche erwachsene Menschen verhalten. Ich bin auch nur eine Person und es tut mir leid dass ich als 15-Jähriger schüler nicht das auf die Idee gekommen bin das was mit dem Plugin nicht stimmt da ich mich wie gesagt erst angefangen habe mich mit attinys zu beschäftigen.
Und so leid es mir tut jeder fängt irgendwo mal an das war halt mein Start und da kann sich jeder gern drüebr lustig machen, aber die ist nun mal mein Hobby und ich bin immernoch erst 15 und so ein Verhalten von Erwachsenen gebildeten Menschen geht echt gar nicht so leid es mir tut. Die Jugend von heute ist die Zukunft, das ist nun mal so. Ich möchte halt etwas aus mir machen, damit ich früh Erfahrung sammeln kann und somit später einen hohen Schulabschluss und einen gut bezahlten Job bekomme. Und von diesem Geld muss ich dann die Rente zahlen für Leute die sich über meinen Start in die attinys lustig machen...
Ich hoffe diese Nachricht bringt sie mal dazu zu überdenken mit wem sie wie online schreiben und wie sie dort mit anderen Leuten umgehen, vor allem mit Jugendlichen und Kindern wenn sie ein eigentlich doch sehr tolles und spannendes Hobby anfangen möchten.
@Pascal:
Ich habe auch irgendwann mit Attiny angefangen. OK, da war ich keine 15, aber das Alter spielt keine Rolle.
Aber ich habe es anders angefangen als Du:
Ich habe mir beim Hersteller des Mikrocontrollers das Datenblatt herunter geladen und es durch /gearbeitet/, denn ich wollte den Chip kennen lernen.
Ich konnte schon C. Auch das hatte ich mir aber vorher strukturiert und systematisch /erarbeitet/.
Ja, klar, man kann sich heute von der AI den Code auswürfeln lassen, ihn in den µC laden und schauen, was passiert. Oder ob etwas passiert. Wenn nicht, lässt man die AI halt noch einmal würfeln. -> Minimaler Aufwand
Aber auch kaum Ertrag.
Denn /Lernen/ setzt nun einmal immer auch /Verständnis/ voraus, und dafür muss man auch Aufwand treiben.
Wenn Du aber jede Form von Aufwand so konsequent vermeidest, dass Du z.B. Deine Texte ohne Punkt und Komma und mit fragwürdiger Groß- und Kleinschreibung dahin rotzt, so dass sie schwer lesbar werden, dann musst Du Dich auch fragen lassen, warum irgendjemand mehr Arbeit zum Lesen dieser Texte aufwenden sollte, als Dir das Schreiben Wert war.
Ich möchte
halt etwas aus mir machen, damit ich früh Erfahrung sammeln kann
Das finde ich sehr löblich und wünsche Dir bei Deinem Hobby viel Spaß.
Der kommt ganz von selbst, wenn man etwas so sehr verstanden hat, dass man damit kreativ werden kann.
Die Jugend von heute ist die Zukunft, das ist nun mal so.
Das ist richtig. Das war immer so, schon bei den alten Römern.
Allerdings ist die Zukunft nicht unbedingt immer besser geworden. Manchmal gab es heftige Rückschläge, auch schon bei den alten Römern...
Ich wünsche Dir und Deiner Generation, dass Ihr das Zeug dazu habt zu stemmen, was auf Euch zukommt.
Hi danke erstmal für deine Antwort in der man icht nur kritisiert wird.
Ich habe mir beim Hersteller des Mikrocontrollers das Datenblatt
herunter geladen und es durch /gearbeitet/, denn ich wollte den Chip
kennen lernen.
Ich hab mir auch schon das Datenblatt durchgelesen aber das wahrscheinlich nicht aufmerksam genug. Und wie schon so oft erklärt war ich mit den attinys so gar nicht vertraut und wusste deswegen auch nicht wie genau ich die Pins definieren muss, usw. Ich habe dann erstmal geschaut wie ich den Controller überhaupt mit meinem PC verbinden kann und das hat schon sehr lange gedauert da ich außer dem Datenblatt sehr sehr wenig zu dem attiny26 online gefunden habe.
Mein Idee des Lernens war es damit anzufangen simple Projekte zu erstellen wie zum Beispiel eine blinkende Led. Gerade bei solchen Projekten lerne ich persönlich am meisten da ich halt zu der Theorie auch Praxis habe.
Ich weiß ich hätte anderst anfangen könenn aber ich finde jeder hat seine eigene Art Dinge zu lernen und zu verstehen.
Wenn Du aber jede Form von Aufwand so konsequent vermeidest, dass Du
Den Aufwand vermeide ich nicht ich habe den attinys seit knapp einem Monat und habe bis zu diesem Beitrag versucht das Teil so zum laufen zu bringen damit ich wenigstens eine sichtlichen Output habe das es funktioniert. Leider habe ich das alleine nicht geschafft und habe mir deshalb Hilfe geholt. Klar hätte ich auch noch weiter selbst probieren können, aber es nützt mir persönlich viel mehr wenn ich Sachen von anderen, die Erfahrung haben, erklärt bekomme, da ich so einfach persönlich besser lerne und nicht meine eh schon sehr ausgenutzte Freizeit damit verschwende Dinge zu machen wo ich nicht genau weiß was ich mache.
z.B. Deine Texte ohne Punkt und Komma und mit fragwürdiger Groß- und
Kleinschreibung dahin rotzt, so dass sie schwer lesbar werden, dann
Gut über meine Rechtschreibung lässt sich streiten, ich weiß das ich nicht wirklich richtig schreibe, habe aber damit auch im generellen Problem und Versuche mich auch zu verbessern, aber es fällt mir halt noch etwas schwer. Troz allem habe ich versucht nach dem Hinweis das mein Text so viele fahler hat, so richtig wie möglich zu schreiben. Und ich persönlich fand die Nachricht um mich darauf hinzuweisen alles andere als freundlich ausgedrückt.
Und ja ich kann an sich gut mit Kritik umgehen und bin auch oft sehr froh kritisiert zu werden, weil mich das auch weiter bringt. Aber halt auch nur wenn man diese Kritik freundlich ausdrückt und nicht gleich irgendwelche Anschuldigungen stellt obwohl man den Hintergrund nicht kennt.
Ich bin sehr froh über deine Nachricht, da es mir zeigt, dass sich nicht alle Menschen hier so unfreundlich sind. Ich ebenso froh über deine kritik und Hinweise was ich besser machen hätte können. Ich werde versuchen diese Sachen beim nächsten mal zu beachten.
Ich wünsche dir ebenso weiterhin alles gute und nur das beste
Mfg Pascal
z.B. Deine Texte ohne Punkt und Komma und mit fragwürdiger Groß- und
Kleinschreibung dahin rotzt, so dass sie schwer lesbar werden, dann
Gut über meine Rechtschreibung lässt sich streiten, ich weiß das ich
nicht wirklich richtig schreibe, habe aber damit auch im generellen
Problem und Versuche mich auch zu verbessern, aber es fällt mir halt
noch etwas schwer. Troz allem habe ich versucht nach dem Hinweis das
mein Text so viele fahler hat, so richtig wie möglich zu schreiben. Und
ich persönlich fand die Nachricht um mich darauf hinzuweisen alles
andere als freundlich ausgedrückt.
Du willst ja was von mir (mein Wissen) und dann erwarte ich eine gewisse Mitarbeit. Du wirst das auch noch spaeter lernen, dass schriftlicher Ausdruck entscheidet ob Du ernst genommen wirst oder nicht. Ist zwar bloed, ist aber so.
Und wenn Du selbst einraeumst dass Du Probleme mit dem Ausdruck Probleme hast: Schreibe den Text in einer Textverarbeitung (Word/Libreoffice) und dann sind sehr viele Fehler weg (ist mein Ansatz).
Vor vielen Jahren habe ich mal folgendes Bonmot gesehen, ist etwas Wahres dran:
1
"Good spelling, punctuation, and formatting are essentially the on-line
ich finde jeder hat
seine eigene Art Dinge zu lernen und zu verstehen
Ja, es gibt viele Arten, Dinge zu lernen.
Aber nur eine Art zu verstehen.
Wenn also am Ende kein tieferes Verständnis herauskommt, solltest Du die Art zu lernen ändern.
"Verstehen" heißt auch nicht "Das kann ich jetzt. Ich hab's auswendig gelernt."
Wenn Du z.B. an dieser Stelle hier:
wusste deswegen auch nicht
wie genau ich die Pins definieren muss
/gelernt/ hast, dass Du PB6 schreiben musst, dann hilft Dir das zwar für den Augenblick.
Wenn Du aber weißt, /warum/ das /wo/ definiert ist, /wie/ PB6 beim Kompilieren übersetzt wird und /warum/ eine (und genau diese) Integer an dieser Stelle /welche/ Auswirkungen hat, dann hast Du etwas /verstanden/, was Du auch später wieder gebrauchen kannst.
Ich habe dann erstmal
geschaut wie ich den Controller überhaupt mit meinem PC verbinden kann
und das hat schon sehr lange gedauert da ich außer dem Datenblatt sehr
sehr wenig zu dem attiny26 online gefunden habe.
Deswegen fängt man mit Bauteilen an, zu denen man genug leicht verständliche Doku findet.
Im konkreten Fall hast du gleich vier Baustellen gleichzeitig:
Programmiersprache lernen
Mikrocontroller kennen lernen
Arduino Framework kennen lernen
"fremdes" Plugin in Arduino verwenden
So geht das nicht. Man lernt nicht vier Sachen gleichzeitig, die gegenseitig voneinander abhängig sind. Jedenfalls nicht, ohne einen erfahrenen Lehrer direkt neben sich sitzen zu haben.
Da du Arduino benutzen möchtest, mache das mit fertigen Arduino Modulen* die von der Arduino IDE direkt (ohne fremdes Plugin) unterstützt werden. Nach ersten Erfolgserlebnissen solltest du dich mit den den Datenblättern der verwendeten Bauteile auf den Modulen beschäftigen. Versuche z.B. heraus zu finden, welche Funktionen diese noch bieten, die Arduino dir womöglich vorenthalten hat. So lernst du, mit den Datenblättern zu arbeiten.
Erst danach bist du bereit, Arduino-Fremde Hardware mit 3rd parts Plugins zu versuchen. Denn bei denen ist immer irgendwas anders, eingeschränkt und schlechter dokumentiert. Das ist der Level für Fortgeschrittene.
*) Sollte dein Arduino Modul nicht auf Anhieb funktionieren, verschwende nicht deine Zeit und Nerven damit. Lege es zur Seite und kaufe ein originales, das garantiert funktioniert. Chinesische Nachbauten funktionieren nicht immer problemlos, und die dann ans Laufen zu bringen (falls das überhaupt geht) ist wieder auf dem Level der Fortgeschrittenen. Darum kannst du dich später kümmern.
Lass dich nicht von "alles ganz einfach" Versprechen der jeweiligen Autoren blenden. Das ist in den allermeisten Fällen schlicht gelogen.
Noch was: Inzwischen kann man die Version 2 der Arduino IDE empfehlen. Insbesondere, weil man dort mit gedrückter Strg Taste auf Schlüsselwörter klicken kann, die direkt zur Deklaration des Wortes führen. Ich empfinde das extrem hilfreich, um die Programmcodes zu verstehen.
Und
ich persönlich fand die Nachricht um mich darauf hinzuweisen alles
andere als freundlich ausgedrückt.
Hmmm, falls Du damit meinen Beitrag vom 03.11.2024, 07:55 meinst, so habe ich mir damit die allergrößte Mühe gegeben, meine Meinung kultiviert und fair zu formulieren. Solltest Du also tatsächlich meine Antwort mit Deiner Bemerkung gemeint haben, so würde mich ernsthaft interesssieren, was darin "alles andere als freundlich" war.
Zugegeben, meine atheistischen Tendenzen hätte ich unterdrücken können, aber dass das der Hauptgrund deiner Kritik sein sollte, kann ich nun wirklich nicht glauben.
Mir hat das "Lernpaket Mikrocontroller" von Franzis geholfen, beim Verstehen von uCs. Ist "aber" ASM, wobei gerade das meinem Verständnis sehr förderlich war.
Erst als die Programme in ASM anfingen zu komplex zu werden, hab ich irgendwann damit angefangen, mir C beizubringen.
Ah, du meinst den 4.11. Dem markierten text zu zitieren wäre einfacher
und klarer gewesen.
Thilo L. schrieb:
Sei mir bitte nicht böse...
Ich meine in keinem Falle deinen Texte, diese waren ja allzeit netz formuliert und auch nur kritik. Mit sowas habe ich überhaupt kein Problem
Ich finde nur so Aussagen wie " Selbstüberschätzung" usw. Nicht gerade freundlich ausgedrückt.
Wenn du dich da mal nicht irrst. Ich bin nicht er, aber ich habe mit 15 meine ersten Programme auf einem geliehenen C64 geschrieben. Nur ein Jahr später dann auf PC und Mikrocontrollern. Da war ich sicher nicht der einzige.
Ich konnte schon C.
Da warst du wie alt?
In meinem Fall war es Basic mit 15 und Pascal mit 16.
Eins meiner wenigen Assembler-Programme auf PC hat sogar einen Wettbewerb gewonnen. Da ging es um den kleinsten schönen Bildschirmschoner-Effekt (als reguläres Programm für DOS, nicht TSR). Meins stellte ein animiert waberndes Plasma dar, mit nur 99 Bytes. Da war ich auch noch nicht volljährig, und in Mathe erheblich fitter als heute.
In den 70er Jahren waren Computer aller Art für Technik Nerds extrem faszinierend, aber leider unbezahlbar. Erst in den 80er Jahren wurden die Sachen für wohlhabende Familien bezahlbar und in den 90er Jahren dann für alle.
Heute wachsen unsere Kids mit Smartphones auf, und der ganze Haushalt steht voller programmierter Geräte. Daran ist nichts mehr so besonders, wie damals.
Wie ich aber oben schon schrieb, spielt das Alter (fast) keine Rolle.
Du bist ja kein Baby mehr, von dem man eigenes strukturiertes Lernen nicht erwarten kann sondern dem man erst einmal ein Mobile übers Bettchen hängt, damit es erst einmal dreidimensionale Wahrnehmung lernt. Du kannst die Dinge schon selber strukturiert angehen.
Lernen macht nun einmal Mühe und Arbeit. Für den Einen weniger, für den Anderen mehr.
Aber das Schöne ist ja gerade, wenn aus den Mühen ein Erfolg wird.
Leider sieht man oft, dass die Anderen (denen das Lernen schwerer fällt) nach einem schnellen Erfolg suchen, ohne die Mühe zu investieren und strukturiert vorzugehen. Die verlieren dann genau deshalb leider auch schnell die Lust.
Die Einen (denen das Lernen leichter fällt) suchen sich dagegen ganz automatisch schwerere Aufgaben, die Mühe erfordern, und investieren diese Mühe auch.
Denn so einfach ist die Welt ja auch nicht wie hier:
Pascal S. schrieb im Beitrag #7769083:
von diesem Geld muss ich dann die Rente zahlen für Leute
die sich über meinen Start in die attinys lustig machen
Aus Deiner Generation werden nur wenige für die Älteren die Rente zahlen. Nämlich die Leistungsträger.
Die Anderen hängen den Leistungsträgern noch als zusätzliches Senklot am Hals.
Und da hast dann als 15-Jähriger als erstes die notwendige
Systemdokumentation besorgt und dir "strukturiert und systematisch" den
C64 erarbeitet?
Ja. Ich hatte den Schaltplan und die Datenblätter der programmierbaren IC's vorliegen. Es gab sogar ein komplette ROM-Listing als Buch, wo quasi jede einzelne Zeile kommentiert/erklärt wurde.
Auch beim PC bin ich anfangs so vorgegangen. Ich erinnere mich noch gut an die Datenblätter der Sound-Chips und des Floppy-Controllers. Mit meinem Floppy-Treiber konnte man doppelt so schnell Disketten lesen und bis zu 4x so schnell kopieren, als DOS. Vielleicht sagt dir "VgaCopy" etwas. Die HW Zugriffe auf Floppy-Controllers und Soundkarte stammen von mir. Die Idee und GUI stammen von einem damaligen Freund.
Ab Windows 95 endeten allerdings allmählich die direkten Hardware-Zugriffe.
So geht das nicht. Man lernt nicht vier Sachen gleichzeitig, die
gegenseitig voneinander abhängig sind. Jedenfalls nicht, ohne einen
erfahrenen Lehrer direkt neben sich sitzen zu haben.
Na ja, in seinem konkreten Fall: wie hätte Pascal das anders machen sollen? Er will halt in C ein Programm für einen Mikrocontroller schreiben, in Arduino, und von dort in den uC laden. Soll er mit Assembler anfangen und sich die eigene Toolchain selbst bauen?
Die Jugend von heute ist die Zukunft da ist nun mal so.
Wir brauchen die Jugend nicht, denn die KI wird in Kürze übernehmen ;-) ;-) <SCNR> (bitte nicht böse nehmen!)
Btw.: was solltest Du uns damit sagen? Solche Aussagen sind für mich eigentlich No Gos, ebenso wie die Aussage meines Vaters: "so lange du noch Deine Füße unter meinen Tisch..." Da war das Abendessen aber mal sowas von gegessen...
Im Übrigen: hast Du Dir das "Datenblatt" des Attiny wirklich angeschaut, und das Pinout Deines Boards? Und Blinkprogramme für den Attiny mit Arduino wird es vermutlich auch reichhaltig geben.
Zuletzt muss ich mich aber doch noch auf Deine Seite stellen: So arg viel hast Du ja nicht falsch gemacht. Immerhin konntest Du das Programm übersetzen und in den uC flashen. Es hakte lediglich an der Port-Initialisierung(*)
Also hast Du schon einen großen Teil der Skill-Liste von Sherlock gemeistert! Aber strukturiert lernen wird dir in Zukunft sicher bessere und schnellere Erfolge bescheren als ausprobieren, das als Tipp.
Mach weiter mit Deinem Hobby! Elektronik ist auch heute noch ein sehr interessantes Gebiet, auch wieder zum Basteln! (das war leider lange Zeit nicht mehr so, bevor dann die Maker-Szene erwachte).
Ich finde es immer wieder erstaunlich, dass man ohne jegliche Grundlagen
so anfangen kann.
Dabei ist es genau das, was einen Anfänger auszeichnet: keine Grundlagen zu haben und sie sich erarbeiten zu wollen. Verrückt! :-)
Beim Erarbeiten gibt es dann unterschiedliche Ansätze: die, die erst einmal jedwede verfügbare Dokumentation durchkauen und jene, die schnell versuchen, etwas praktisch umzusetzen. Letzteres kostet zwar oft zerstörte Bauelemente, bietet dafür aber (vielleicht) schnellere Erfolgserlebnisse und Lernerfolge. Beide Ansätze funktionieren ähnlich gut, auch wenn überzeugte Anhänger eines dieser Ansätze sich nur selten vorstellen können, daß auch der andere klappt.
Na ja, ich lese auch nicht erst drei Jahre, bevor ich dann was mache, aber ich nehme dann erprobte Beispiele und ändere vielleicht den Code oder auch die Hardware. Natürlich im überschaubaren Umfang, bei der Hardware.
Beim TO handelt es sich um einen 15 Jährigen, da ist sowieso fast alles erlaubt. :-)