Jetzt wollte ich eine Laufschrift auf ner LEDMatrix
und Attiny2313 laufen lassen.
Dazu habe ich mir diese Timerone.h header geholt
und den dazugehören Code, den bissl umgeschrieben.
Aufn Arduino läuft das Super aber sobald
ich es aufn ATTiny uploaden will kommt folgende
fehlermeldung:
C:\Users\MindCode\Desktop\Arduino\Arduino IDE\arduino-1.0.1\libraries\TimerOne\TimerOne.cpp: In member function 'void TimerOne::attachInterrupt(void (*)(), long int)':
C:\Users\MindCode\Desktop\Arduino\Arduino IDE\arduino-1.0.1\libraries\TimerOne\TimerOne.cpp:117: error: 'TIMSK1' was not declared in this scope
C:\Users\MindCode\Desktop\Arduino\Arduino IDE\arduino-1.0.1\libraries\TimerOne\TimerOne.cpp: In member function 'void TimerOne::detachInterrupt()':
C:\Users\MindCode\Desktop\Arduino\Arduino IDE\arduino-1.0.1\libraries\TimerOne\TimerOne.cpp:125: error: 'TIMSK1' was not declared in this scope
C:\Users\MindCode\Desktop\Arduino\Arduino IDE\arduino-1.0.1\libraries\TimerOne\TimerOne.cpp: In member function 'void TimerOne::start()':
C:\Users\MindCode\Desktop\Arduino\Arduino IDE\arduino-1.0.1\libraries\TimerOne\TimerOne.cpp:142: error: 'TIMSK1' was not declared in this scope
C:\Users\MindCode\Desktop\Arduino\Arduino IDE\arduino-1.0.1\libraries\TimerOne\TimerOne.cpp:143: error: 'PSRSYNC' was not declared in this scope
Was mir auch noch aufgefallen ist: Dieser Attiny ist recht langsam, kann das sein?
Wenn ich zwischen zwei Buchstaben wechsel, Leuchten gewisse Dots einfach garnicht.
Ich schätz mal das liegt am Multiplexing und dass wie gesagt Attiny zu langsam dafür ist?
Du kannst nicht erwarten, dass auf einem ATtiny alle Register identisch mit einem ATmega sind. Es gibt schon Probleme, wenn Du einen ATmega2560 voll ausnützt und dann das gleiche auf einem ATmega328p (UNO) laufen lassen willst. Dort sind es in erster Linie einfach weniger Resourcen, aber die ATtinys sind auch bei den Registern anders aufgebaut. Du müsstest also die Library umschreiben, wenn Du sie mit einem ATtiny benützen willst. Es gibt kein TIMSK1, nur ein TIMSK, das PSRSYNC Flag existiert überhaupt nicht.
Was ist mit der Geschwindigkeit?
Ich probiere gerade verschiedene Möglichkeiten zum Multiplexing.
Aber bisher bin ich auf keine Lösung gekommen, wie ich
am effektivsten alle Buchstaben / Zahlen darstellen kann
ohne Flackern
Wird nicht mit einem Quarz betrieben.
Einfach Direkt! Festspannungsregler > Attiny2313 > LED-Matrix!
Wäre es mit einem Quarz wohl besser?
NACHTRAG:
Hab grad gesehn, dass ich den attiny
auch mit 8mhz/1mhz betreiben kann in dem
ich in der arduino ide es entsprechend einstelle,
sieht schon besser aus...
If you've not changed the fuses its using the internal osc, at 8Mhz divided by 8 ( equ. 1 Mhz) . If you using the library to call any time related function it is something you can either adapt( if you have enough knowledge) or just use a timed function written on purpose for it >!
Man kann die Fuses auch mit der Arduinosoftware setzen. Wenn die passenden Fuses in der Datei "boards.txt" für den 2313 richtig eingetragen sind, kann man die Option "bootloader installieren" verwenden. Der Bootloader ist dabei eigentlich unwichtig, aber beim Programmieren werden die Fuses von der IDE gesetzt, was beim normalen Flashen nicht passiert.
Welche Fuses es gibt und wie sie gesetzt werden müssen, um bestimmte "Effekte" zu erzielen, kann man sich im Fuse-Calculator zusammenbauen: http://www.frank-zhao.com/fusecalc/
Damit hab ich auch meinen TINY85 auf 8MHz über die IDE gesetzt bekommen.