Hallo dieser code wurde für einen attiny13 geschrieben Ich habe ihn auf einen attiny85 aufgespielt Leider funktioniert die Schaltung nicht?/* * Copyright (c) 2016 Divadlo fyziky UDiF (www.udif.cz) * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #include <avr/sleep.h> #include <util/delay_basic.h> #include <avr/eeprom.h> const uint8_t buttons[4] = { 0b00001010, 0b00000110, 0b00000011, 0b00010010 }; const uint8_t tones[4] = { 239, 179, 143, 119 }; uint8_t lastKey; uint8_t lvl = 0; uint8_t maxLvl; // uint32_t ctx; // too big uint16_t ctx; uint16_t seed; volatile uint8_t nrot = 8; volatile uint16_t time; void sleepNow() { PORTB = 0b00000000; // disable all pull-up resistors cli(); // disable all interrupts WDTCR = 0; // turn off the Watchdog timer set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); sleep_cpu(); } void play(uint8_t i, uint16_t t = 45000) { PORTB = 0b00000000; // set all button pins low or disable pull-up resistors DDRB = buttons[i]; // set speaker and #i button pin as output OCR0A = tones[i]; OCR0B = tones[i] >> 1; TCCR0B = (1 << WGM02) | (1 << CS01); // prescaler /8 _delay_loop_2(t); TCCR0B = 0b00000000; // no clock source (Timer0 stopped) DDRB = 0b00000000; PORTB = 0b00011101; } void gameOver() { for (uint8_t i = 0; i < 4; i++) { play(3 - i, 25000); } if (lvl > maxLvl) { eeprom_write_byte((uint8_t*) 0, ~lvl); // write best score eeprom_write_byte((uint8_t*) 1, (seed >> 8)); // write high byte of seed eeprom_write_byte((uint8_t*) 2, (seed & 0b11111111)); // write low byte of seed //eeprom_write_word((uint16_t*) 1, seed); // write seed for (uint8_t i = 0; i < 3; i++) { // play best score melody levelUp(); } } sleepNow(); } void levelUp() { for (uint8_t i = 0; i < 4; i++) { play(i, 25000); } } uint8_t simple_random4() { // ctx = ctx * 1103515245 + 12345; // too big for ATtiny13 ctx = 2053 * ctx + 13849; uint8_t temp = ctx ^ (ctx >> 8); // XOR two bytes temp ^= (temp >> 4); // XOR two nibbles return (temp ^ (temp >> 2)) & 0b00000011; // XOR two pairs of bits and return remainder after division by 4 } ISR(WDT_vect) { time++; // increase each 16 ms if (nrot) { // random seed generation nrot--; seed = (seed << 1) ^ TCNT0; } } void resetCtx() { ctx = seed; } int main(void) { PORTB = 0b00011101; // enable pull-up resistors on 4 game buttons ADCSRA |= (1 << ADEN); // enable ADC ADCSRA |= (1 << ADSC); // start the conversion on unconnected ADC0 (ADMUX = 0b00000000 by default) // ADCSRA = (1 << ADEN) | (1 << ADSC); // enable ADC and start the conversion on unconnected ADC0 (ADMUX = 0b00000000 by default) while (ADCSRA & (1 << ADSC)); // ADSC is cleared when the conversion finishes seed = ADCL; // set seed to lower ADC byte ADCSRA = 0b00000000; // turn off ADC WDTCR = (1 << WDCE); // start watchdog timer with 16ms prescaller (interrupt mode) sei(); // global interrupt enable TCCR0B = (1 << CS00); // Timer0 in normal mode (no prescaler) while (nrot); // repeat for fist 8 WDT interrupts to shuffle the seed TCCR0A = (1 << COM0B1) | (0 << COM0B0) | (0 << WGM01) | (1 << WGM00); // set Timer0 to phase correct PWM maxLvl = ~eeprom_read_byte((uint8_t*) 0); // read best score from eeprom switch (PINB & 0b00011101) { case 0b00010101: // red button is pressed during reset eeprom_write_byte((uint8_t*) 0, 255); // reset best score maxLvl = 0; break; case 0b00001101: // green button is pressed during reset lvl = 255; // play random tones in an infinite loop break; case 0b00011001: // orange button is pressed during reset lvl = maxLvl; // start from max level and load seed from eeprom (no break here) case 0b00011100: // yellow button is pressed during reset seed = (((uint16_t) eeprom_read_byte((uint8_t*) 1)) << 8) | eeprom_read_byte((uint8_t*) 2); // load seed from eeprom but start from first level break; } while (1) { // main loop resetCtx(); for (uint8_t cnt = 0; cnt <= lvl; cnt++) { // never ends if lvl == 255 _delay_loop_2(4400 + 489088 / (8 + lvl)); play(simple_random4()); } time = 0; lastKey = 5; resetCtx(); for (uint8_t cnt = 0; cnt <= lvl; cnt++) { bool pressed = false; while (!pressed) { for (uint8_t i = 0; i < 4; i++) { if (!(PINB & buttons[i] & 0b00011101)) { if (time > 1 || i != lastKey) { play(i); pressed = true; uint8_t correct = simple_random4(); if (i != correct) { for (uint8_t j = 0; j < 3; j++) { _delay_loop_2(10000); play(correct, 20000); } _delay_loop_2(65536); gameOver(); } time = 0; lastKey = i; break; } time = 0; } } if (time > 4000) { sleepNow(); } } } _delay_loop_2(65536); if (lvl < 254) { lvl++; levelUp(); // animation for completed level _delay_loop_2(45000); } else { // special animation for highest allowable (255th) level levelUp(); gameOver(); // then turn off } } }
Thomas I. schrieb: > dieser code wurde für einen attiny13 geschrieben > Ich habe ihn auf einen attiny85 aufgespielt > Leider funktioniert die Schaltung nicht? Was erwartest du? Ein Tiny85 unterscheidet sich nunmal in vielen Details von einem Tiny13. Wäre es anders, würde er Tiny13 heißen, das sollte doch wohl klar sein, oder? Also: auf Binärlevel (sprich: Hexfile) ist die Chance, dass irgendwas läuft, recht gering. Es ist also mindestens neu kompilieren für das richtige Target (also Tiny85) nötig. Mit ein wenig Glück stößt schon der Compiler dabei auf einige Unterschiede. Da muss dann auf jeden Fall der Code angepasst werden. Leider kann aber der Compiler nicht alle Unterschiede finden. Da hilft dann nur Vergleichen der Datenblätter, um die funktionalen Unterschiede zu finden. Auch für diese muss dann natürlich der Code entsprechend angepasst werden. Wenn du dich dazu nicht in der Lage siehst, ist die einfachste (und nahe liegende) Lösung: Kauf' einen Tiny13 und gut isses.
Hi, Ok, das naheliegenste wäre es schon einen attiny13 zu nehmen Leider habe ich da schon beim Kompilieren Probleme Da kommt die Fehlermeldung das der Sketch zu gross ist Ich muss sagen das ich ein absoluter noob bin in Sachen Programmieren hatte halt gehofft das mir jemand hilft den Code anzupassen
Thomas I. schrieb: > Leider habe ich da schon beim Kompilieren Probleme > Da kommt die Fehlermeldung das der Sketch zu gross ist Sketch!? Schmeiß den Arduino-Dreck weg und benutze was Richtiges zum Compilieren. Z.B. das Microchip-Studio.
Sry wie meinst du das? Attiny kann auch mit der Arduino Umgebung programmieren
Beitrag #7015592 wurde von einem Moderator gelöscht.
Thomas I. schrieb: > Sry wie meinst du das? > Attiny kann auch mit der Arduino Umgebung programmieren Natürlich. Aber der TO kann's halt nicht. Zumindest nicht ohne Bootloader. Und das dürfte sein, was hier beim Target Attiny13 so stört... Beim Tiny85 ginge es auch mit Bootloader. Aber der Code muss halt angepasst werden. Auch das kann der TO wieder nicht. Und die Arduino-IDE gibt ihm in der Standard-Konfiguration auch praktisch keine Hilfestellung bei diesem Problem.
Ich Poste mal, vielleicht zum besseren Verständnis, das Projekt das ich nachbasteln will https://hackaday.io/project/18952-simon-game-with-attiny13
Thomas I. schrieb: > Attiny kann auch mit der Arduino Umgebung programmieren Wie hast du das gemacht? Der ATtiny Core unterstützt den ATtiny13 nicht.
Christian M. schrieb: > Na das ist für Arduino, die gibt es nicht in ATtiny! Blödsinn. Man kann viele Chips inkl. Atiny's mit der Arduino-Umgebung programmieren. Ich mache das mit den Atiny-85 dauernd. ABER !!! Man muss den Chip-Treiber installieren. Wobei wir bei Frage Nr. Uno sind. ;) Hast du den Chip-Treiber für ein Atiny-13 installiert. Wenn nicht, hier eine Anleitung mal eben gegoogelt. https://42project.net/den-attiny13a-pu-mittels-usb-tiny-isp-und-der-arduino-ide-programmieren/ Es gibt ähnliche Anleitungen auch für den Atiny-85 und jede Menge andere Chips. Ist alles die gleiche Vorgehensweise. Einzige Unterschied. In dieser Auflistung die URL: https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json hinterlegen und speichern. Da muss dann der passende Link zum Chiptreiber herein. Und da kann man theoretisch die Liste unbegrenzt erweitern. c-hater schrieb: > Sketch!? Schmeiß den Arduino-Dreck weg und benutze was Richtiges zum > Compilieren. Z.B. das Microchip-Studio. WIESO. Nur weil die ein normalen C-Code Sketch nennen. Mir ist der Name völlig egal. Hauptsache der Compiler macht ein brauchbaren Code daraus. Es wird schon ein Grund haben wieso das Entwickelt wurde und so beliebt ist.
Ja, ich habe microcore installiert, so wie in der Anleitung angegeben Der Sketch wird auch mit attiny13 richtig kompiliert Leider kommt dort die Fehlermeldung das der Sketch zu gross ist Haben ein paar Leute bei hackaday auch bemängelt Attinys habe ich schon viele programmiert über die Arduino Umgebung Von daher……
Thomas I. schrieb: > #include <avr/sleep.h> > #include <util/delay_basic.h> > #include <avr/eeprom.h> #include <avr/io.h> #include <avr/interrupt.h> fehlen. > void play(uint8_t i, uint16_t t = 45000) { WTF. > bool pressed = false; Datentyp bool kommt auch nicht aus dem Nichts.
Der Knackpunkt ist vielleicht, dass dein Compiler zu neu ist. Die älteren Versionen vom avr-gcc erzeugen manchmal kleineren Code.
Tim T. schrieb: > WTF. > Datentyp bool kommt auch nicht aus dem Nichts. Arduino ist C++ und fügt einige Includes automatisch ein. Da ist auch der bool Typ mit drin.
Thomas, an deiner Stelle würde ich alle Register bitweise miteinander vergleichen, um den Quelltext anzupassen. Oder du compilierst es mit einem älteren Compiler ohne Arduino. Aber dann musst du die wenige Arduino spezifischen Stellen umschreiben (z.B. bool). Infos dazu: http://stefanfrings.de/avr_tools/index.html
Stefan ⛄ F. schrieb: > Tim T. schrieb: >> WTF. >> Datentyp bool kommt auch nicht aus dem Nichts. > > Arduino ist C++ und fügt einige Includes automatisch ein. Da ist auch > der bool Typ mit drin. Wo siehst du bei dem Source Anzeichen für C++?
Will it also work with the attiny85? This hardware design works with ATtiny85 which is almost pin compatible. But some software changes have to be made because register names of those chips differ a little. Can I make these with attiny 85? Yes, you can, but some registers in ATtiny85 have different names and it would need some modifications which require knowledge of its datasheet. https://www.youtube.com/watch?v=BJ-PwkigoB4
Stefan ⛄ F. schrieb: > Tim T. schrieb: >> Wo siehst du bei dem Source Anzeichen für C++? > > In der "WTF" Zeile. Sieht eher nach jemandem aus der C++ Halbwissen versucht in einem C-Quelltext unterzubringen. Ansonsten ist der Source auch eine Zumutung und man sollte den komplett überarbeiten. Wiedereinmal ein Beispiel dafür was Arduino bei den Leuten anrichtet.
Thomas I. schrieb: > Leider kommt dort die Fehlermeldung das der Sketch zu gross ist > Haben ein paar Leute bei hackaday auch bemängelt Du kannst versuchen die Libs zu kürzen. K.A. ob das bei den Libs möglich ist. Viele Libs sind für mehre Dinge geschrieben. Da wird dann oft mit Variablen die passenden Eigenschaften modifiziert. Wenn man genau weiß was man braucht kann man die überflüssigen Code entfernen. Das bringt einiges an Bytes. Einfach die Lib vorher kopieren und umbenennen und dann die umbenannte einbinden. Man kann auch versuchen den Code zu analysieren. Viele Coder (inkl. ich) sind bei deklarieren von Array etc. immer sehr großzügig. Hat man sich halt durch die Speicherplatzverschwendung bei Windows so angewöhnt. Vielleicht hat der Code auch irgendwelche "Angewohnheiten" dieser Art. Ansonsten hilft nur sich ein CHIP mit mehr Speicher zu suchen. Da gibt es sicher was. Über wie viele Bytes reden wir hier eigentlich. Der Compiler sagt dir doch am ende aufs Byte genau wie groß der Code und wie viel Platz der Chip hat, bzw. nicht hat.
Hab das Ding mal eben im AVR Studio 4.19 auf C angepasst und es ist mit 1104 Byte Flash rausgekommen. Sind zwar noch 2 Warnings drin wegen der signedness der delay aber das ist erstmal egal. Sehe aber genug Möglichkeiten noch ein paar Byte einzusparen um den Code auch in 1 kB Flash zu bekommen.
Thomas I. schrieb: > Habe deshalb auch einen attiny85 verwendet, der hat ja mehr Speicher Der Speicher ist nicht das Problem, der grottige Quelltext ist das Problem.
Der Autor des Projektes bietet auf seiner Homepage neben dem Quelltext auch die *.hex Datei an. Nimm die doch einfach.
Habe letztens noch den Ersteller des Codes kontaktiert und beim ihm nachgefragt ob er nicht auch einen angepassten Code für attiny 85 posten will Leider nicht…
Die hex Datei müsste ich sicher auch anpassen für einen attiny 85 Oder?
Thomas I. schrieb: > Habe letztens noch den Ersteller des Codes kontaktiert und beim ihm > nachgefragt ob er nicht auch einen angepassten Code für attiny 85 posten > will > Leider nicht… Das Ding ist in 15 Minuten komplett auf einen Tiny25/45/85 angepasst, nur sollte man dabei schon minimale Ahnung haben was man da macht.
Wenn du programmieren möchtest, solltest du doch schon selbst mit der Thematik befassen. Von nichts kommt nichts. Wenn es dir jedoch nur ums Basteln ging, dann nimm die hex Datei vom Autor. Die ist übrigens zufälligerweise exakt die maximalen 1024 Bytes groß.
Thomas I. schrieb: > Die hex Datei müsste ich sicher auch anpassen für einen attiny 85 > Oder? Die hex Datei ist was hinterher rauskommt und in den Tiny geladen wird, also ja, die wird durch anpassen des Quelltextes und kompilieren natürlich angepasst. Also bei dir sehe ich zwei Möglichkeiten: 1. hex vom Autor aufspielen und fertig. 2. Anderes Hobby suchen.
Ein anderes Hobby suche ich mir deswegen nicht Im eigentlichen Sinn ist programmieren auch gar nicht mein Hobby weil das auch gar nicht mache oder gelernt habe Darum verwende ich Arduino, wie viele andere auch An diesem Projekt habe ich vorallem Spass daran die Platine selber zu ätzen und das ganze dann zu verlöten
:
Bearbeitet durch User
Thomas I. schrieb: > An diesem Projekt habe ich vorallem Spass daran die Platine selber zu > ätzen und das ganze dann zu verlöten Dann bastel lieber mit Logik-Bausteinen. Da braucht man nicht programmieren.
Wo ist denn jetzt das Problem, die *.hex Datei in den ATtiny13 zu laden?
Stefan ⛄ F. schrieb: > Wo ist denn jetzt das Problem, die *.hex Datei in den ATtiny13 zu laden? Zwischen den Ohren.
Thomas I. schrieb: > Ein anderes Hobby suche ich mir deswegen nicht > Im eigentlichen Sinn ist programmieren auch gar nicht mein Hobby > weil das auch gar nicht mache oder gelernt habe > Darum verwende ich Arduino, wie viele andere auch Es gibt für dich nur 3 Möglichkeiten. 1. Anderes Hobby suchen. Ok willst du nicht. 2. Etwas nutzen OHNE Ahnung und hoffen das es klappt. Mag funktionieren ist aber gefährlich wenn man so abhängig ist (wie man in der Politik gerade sieht ;) 3. Den Code nehmen, lernen ihn zu verstehen. Dazu ist (wie auch in der Politik) am Anfang viel Zeit, etwas Geld und viel Nerven erforderlich. ABER dann kann man so ein Code nehmen o. es auch lassen und gleich was eigenes machen. Und die Arduinos sind genau DAFÜR erfunden worden. Diese Studios wo hier alle reden gab es schon vorher. Bloß sie haben nicht "die breite Masse" motiviert, wozu ich auch mich zähle. Aber wie sagte schon Susi bei Herzblatt :" Nimmst du Nr 1, oder Nr 2 oder entscheidest du dich doch für Nr. 3" o.s.ä. ;)
Stefan ⛄ F. schrieb: > Tim T. schrieb: >> Wo siehst du bei dem Source Anzeichen für C++? > > In der "WTF" Zeile. Ist ja kein Problem, die Aufrufe von Play mit beiden Parametern anzugeben, in den 'WTF'-Fällen eben mit '45000'. Ich habe den Originalcode aus dem Link versucht zu Kompilieren mit meinem (alten) WinAVR. 125% für den Tiny13 Flashbelegung. Ich hätte ja den vom TO genommen, wenn er es als File angehängt hätte; so muss man jede Menge Kommentarzeilen korrigieren. Mit dem Tiny25/45/85 geht es dann natürlich, aber man muss sowieso ein paar Dinge anpassen: - wenn schon keine Prototypen vorhanden sind: die Funktion 'levelUp' muss vor 'gameOver' im Code platziert sein - #include <avr/interrupt.h> muss drin sein, sonst gibt es kein sei() und cli() - _delay_loop_2(65536): die 65536 sind zu groß; es geht nur uint16_t als Argument - bool und false/true ersetzten oder nachdefinieren - WDTIE heißt beim Tinyx5 WDIE Ob die Funktion damit gegeben wäre, habe ich nicht geprüft; für den Tinyx5 jedenfalls kompiliert sie fehlerfrei.
Schlaumaier schrieb: > Diese Studios wo hier > alle reden gab es schon vorher. Bloß sie haben nicht "die breite Masse" > motiviert Und das war auch gut so. Das hat den absolut untauglichen Crap vorbeugend ausgeschlossen. Was über blieb, war zwar auch längst nicht immer als "Programmierer" zu bezeichnen, aber immerhin nachweislich daran interessiert, irgendwas in diesem Bereich zu lernen.
c-hater schrieb: > Was über blieb, war zwar auch längst nicht immer als "Programmierer" zu > bezeichnen, aber immerhin nachweislich daran interessiert, irgendwas in > diesem Bereich zu lernen. hihi. Das Problem war das die ein Nischenprodukt waren ohne breit gestreute Werbung. Weshalb ich die nie kennengelernt habe. Sonst hätte ich mir die mit Sicherheit mal angesehen. Ich bin erst wieder durch die Arduino-Teile zur Elektronik gekommen. Den letzten "Chip" für denn ich vor einen Arduino den Sockel eingelötet habe war ein 7400. Fakt ist man hat auch viele Motivierte Leute (wie mich) ausgeschlossen. Und ich kann Programmieren seit ich mein ZX-81 bekommen habe. ;)
Schlaumaier schrieb: > > Das Problem war das die ein Nischenprodukt waren ohne breit gestreute > Werbung. Weshalb ich die nie kennengelernt habe. Sonst hätte ich mir die > mit Sicherheit mal angesehen. > > Ich bin erst wieder durch die Arduino-Teile zur Elektronik gekommen. Den > letzten "Chip" für denn ich vor einen Arduino den Sockel eingelötet habe > war ein 7400. > > Fakt ist man hat auch viele Motivierte Leute (wie mich) ausgeschlossen. > Und ich kann Programmieren seit ich mein ZX-81 bekommen habe. ;) Und noch ein Grund die Arduinos nicht zu mögen...
Hallo, Schlaumaier schrieb: > Fakt ist man hat auch viele Motivierte Leute (wie mich) ausgeschlossen. Du hast dich selber ausgeschlossen! In der letzten Zeit hast du mehrfach erwähnt was du schon alles programmiert hast. Und dann schaffst du es nicht dich in eine Entwicklungsumgebung einzuarbeiten, die nun wirklich nicht schwer zu verstehen ist? Das ist völlig unverständlich, zumal man im Internet überall Informationen dazu finden kann wie man mit Atmel-Studio Software für die AVR-Controller erstellt. rhf
Roland F. schrieb: > Und dann schaffst du es nicht dich in eine Entwicklungsumgebung > einzuarbeiten, die nun wirklich nicht schwer zu verstehen ist? > Das ist völlig unverständlich, zumal man im Internet überall > Informationen dazu finden kann wie man mit Atmel-Studio Software für die > AVR-Controller erstellt. Du hast meine Aussage nicht verstanden. Ich habe von den System nicht einmal gewusst. Ich bin erst durch eine Zeitschrift über den Raspberry darüber informiert worden. Und habe mich DANN erst schlau gemacht. Und DANN habe ich erst wieder mit Elektronik angefangen. Das erste Buch was ich mir gekauft habe, hatte nicht einmal was mit Arduinos zu tun, sondern war "Coole Projekte mit den Raspberry pi". Da ich anfangs geplante hatte auf/mit der Beere zu entwickeln. Dann kam ich zu den wesentlich preiswerten Arduinos, habe mir 1 Starter-Paket mit UNO und danach 5 Clone-Nano für a 2 Euro in China gekauft. So fing es an. Klar wusste ich das es jede Menge programmierbare Chips gab, aber ich habe mich halt vorher nicht dafür interessiert. Besonders nicht, weil ich Programmer bei Conrad + Co. für mehre 100 Euro gesehen habe. Das war mir der Spass einfach nicht wert. Und ich denke das irgendwie sehr viele Leute eine sehr ähnliche Vorgeschichte haben.
Schlaumaier schrieb: > Dann kam ich > zu den wesentlich preiswerten Arduinos, habe mir 1 Starter-Paket mit UNO > und danach 5 Clone-Nano für a 2 Euro in China gekauft. So fing es an. Na dann wäre für jeden Normaldenkenden doch die erste Aktion gewesen, die Datenblätter der dort verbauten µC zu beschaffen. Und in dem Kontext wäre man praktisch unvermeidlich auch auf das Atmel-Studio gestoßen... Nö, deine Darstellung überzeugt mich absolut nicht.
Hallo, Schlaumaier schrieb: > Du hast meine Aussage nicht verstanden. Doch, habe ich. > Ich habe von den System nicht einmal gewusst. Und als du es gewusst hast, hast du trotzdem nicht geschafft mit Atmel-Studio umzugehen. Aber es ist nicht zu spät, nur Mut. rhf
Roland F. schrieb: > Und als du es gewusst hast, hast du trotzdem nicht geschafft mit > Atmel-Studio umzugehen. > Aber es ist nicht zu spät, nur Mut. Stimmt. ;) Beides ;) Allerdings habe ich mir nie das Datenblatt für den Arduino-chip komplett !! angesehen. **schämemich**. Man bekommt an jeder Ecke so viel Infos dazu das ich es nie wirklich als notwendig erachtet habe. Im Gegensatz zu lausigen LED's z.b. da bekomme ich LED's an jeder Ecke und muss Datenblätter lesen um die Eigenschaften zu erfahren. Verkehrte Welt ;) Vielleicht wenn ich mal Langeweile habe schaue ich mir das ATMEL-Studio an. Ist halt oft ne Frage ob ich Lust habe. Aber sobald das Wort EURO irgendwo erscheint, ist das in meinen Gedächtnis Geschichte, das ist Fakt. Kommt häufig vor das ich z.b. hier Beiträge lese und mir dann das Produkt anschaue ob es mich interessiert. Und wenn ich es spannend finde, wussele ich mich da halt rein. ;) Halt Allgemeinwissen verbessern.
Thomas I. schrieb: > dieser code wurde für einen attiny13 geschrieben Hast du irgendeinen Plan, was der folgende Hinweis bedeuten könnte? Wichtige Regeln - erst lesen, dann posten! ... Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.