http://highlowtech.org/?p=1695 Nach dieser Anleitung habe ich einen At13 mit meinem Arduino Nano geflasht. Wenn ich das angepasste Blink Programm laufen lasse passiert jedoch nichts weiter als dass die LED an dem Port leuchtet und zwar konstant. An anderen Port macht diese nichts. Das leuchten ist je nach Programmiertem Port. Grüße LeDran
LeDran schrieb: > Wenn ich das angepasste Blink Programm laufen lasse passiert jedoch > nichts weiter als dass die LED an dem Port leuchtet und zwar konstant. > An anderen Port macht diese nichts. Das leuchten ist je nach > Programmiertem Port. Show Source, Kabel zum Programmieren abgezogen? Kannst ihn ja vom nano mit dessen 3,3V versorgen.
Probier mal das hier:
1 | #define F_CPU 1200000UL # default fuses sind 9.6Mhz internal Oszi und CLKDIV 8 => 1.2Mhz
|
2 | #include <avr/io.h> |
3 | #include <util/delay.h> |
4 | |
5 | #define LED_PIN PB0 //LED an PB0
|
6 | |
7 | int main(void) { |
8 | |
9 | DDRB |= (1 << LED_PIN); //Als Ausgang konfigurieren |
10 | PORTB = (1 << LED_PIN); |
11 | |
12 | while (1) { |
13 | PORTB |= (1 << LED_PIN); |
14 | _delay_ms(500); |
15 | PORTB &= ~(1 << LED_PIN); |
16 | _delay_ms(500); |
17 | }
|
18 | return 0; |
19 | }
|
Wenn das nicht geht stimmt was mit deiner Verkabelung zum Flashen nicht. Wenn du den Tiny flashst, LED abklemmen.
E25 schrieb: > Probier mal das hier: >
1 | > #define F_CPU 1200000UL // default fuses sind 9.6Mhz internal Oszi und |
2 | >
|
Statt '#' ein '//'
Mit dem Arduino Blinkprogramm.
1 | int led = 0; |
2 | |
3 | // the setup routine runs once when you press reset: |
4 | void setup() { |
5 | // initialize the digital pin as an output. |
6 | pinMode(led, OUTPUT); |
7 | } |
8 | |
9 | // the loop routine runs over and over again forever: |
10 | void loop() { |
11 | digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) |
12 | delay(66); // wait for a second |
13 | digitalWrite(led, LOW); // turn the LED off by making the voltage LOW |
14 | delay(1000); // wait for a second |
15 | } |
Zum Programmieren hab ich ihn in einer eigenen Fassung, also nur eine Verbindung zum Nano. Der hat auch den Kondensator verpasst bekommen.
Ok mit dem Beispielcode von E25 macht er schonmal was er soll. Somit weis ich zumindest das dieser Teil passt. Ist ein alter Tiny wo ich nicht mal wusste ob er noch geht. Danke bis jetzt schonmal. LeDran
LeDran schrieb: > int led = 0; Ein int ist ein 16-bit vorzeichenbehafteter Platzhalter(aka Variable). Passt das zu einem Port, dessen Breite 8 Bit ist?
Passt das zu einem Port, dessen Breite 8 Bit ist?
> digitalWrite(led, HIGH);
ist kein Port, sondern eine Funktion. Der Parameter led ist einfach eine
Zahl, die sagt welcher Portpin gemeint ist.
LeDran schrieb: > http://highlowtech.org/?p=1695 Warte mal da war doch was mit dieser Tiny-Unterstützung: Ach ja: Ich lese dort nur nur ab ATtiny45 aufwärts, der 13er wird nicht unterstützt. Soviel ich weiss gibts aber woanders (google-code seite) jemanden der da was für den Tiny13 gestrickt hat, habe ich aber nie getestet. Ich würde einfach 'natives' C verwenden, das geht auch aus der Arduino-IDE heraus. Du schreibst halt kein Sketch mit setup und loop sondern eine normale C-Datei wie oben mit den avr-lib Befehlen. Du kannst dir ja selber Macros oder Funktionen schreiben die das Verhalten von der Arduinolib nachbilden. Das jagst du dann durch den Compiler und flashst es mit dem nano. Vor einige Zeit habe ich das selber mal probiert und wenn ich mich recht erinnere ging das sogar. In der boards.txt der verschiedenen Tinys von oben nimmtst du einen Abschnitt als Vorlage und passt die Paras an, dort kannst du auch die FUSE Werte einstellen. Danach schaust du in den Ordner variants und nimmst wieder ein pins_arduino.h als Vorlage entspr. Ordner erstellen tin13 und dann passt du das an, ist ja selbsterklärend. Dann kannst du von der IDE aus per nano flashen, darfst aber die Arduino-Befehle nicht nutzen, ich hatte damals ähnliche Probleme. Ansonsten nimmst du halt den avr-gcc von Hand jagst das c-File durch den Compiler rufts dieses Object-Tool auf und flashst mit avrdude über den nano. So mache ich es inzwischen weil es schneller geht und evt. mit obiger Methode doch wieder Fehler gibt wo man dann nicht weiss wie die Arduino-IDE da dazwischenfunkt. Der Tiny13 ist so primitiv, da brauchst du keine Arduinolib drübergestülpt, schreib dir ein paar Macros für die Ports, Register,.. die du brauchst (meist braucht man sowieso nicht alles) dann ist das ganze übersichtlich und wenn der Compiler meckert weisst du genau wo es hackt.
>Ich würde einfach 'natives' C verwenden, das geht auch aus der >Arduino-IDE heraus. Wie schafft man es in der Arduino-IDE, dass die Arduino-Libs nicht eingebunden werden?
Du musst die Features der Libs einfach NICHT nutzen. Dann werden sie auch nicht gebraucht ;)
>> Und wie wählst Du in der IDE den Attiny13 aus? > Dreimal darfst du raten. [ ] Du kennst die Arduino IDE. [x] Du wolltest etwas ins Internet schreiben.
Ich füge einen Eintrag in der IDE für den Attiny 13 hinzu? So vielleicht! Daanke für die Hilfe hier.
Kennt jemand ne gute Seite auf der die Grundlagen für C Programmierung von AVRs gut erklärt sind? Danke.
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.