Go Down

Topic: ATTiny2313 und TimerOne.h (Laufschrift) (Read 3243 times) previous topic - next topic

MindCode

Hallo...

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:

Code: [Select]

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?

Arduino Meag2560

pylon

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.

MindCode

Okay, muss ich
meinen eigenen Code entwerfen!

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 :-(

pylon

Wird der ATtiny mit Quartz betrieben? Wenn ja, welche Frequenz? Wie ist die restliche Beschaltung?

MindCode

#4
Sep 07, 2012, 03:05 pm Last Edit: Sep 07, 2012, 03:12 pm by MindCode Reason: 1
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...


ginge es NOCH besser?

volvodani

0x2B | ~ 0x2B = 0xFF  
(Shakespeare)

MindCode


Mit einem externen QUarz auf 20MhZ ?


muss ich dem chip sagen, er soll den externen benutzen?
wenn ja, wie ?

sth77

Dazu musst du die Fuses entsprechend anpassen.
Mein verwaister Arduino-Blog: http://www.sth77.de/ - letzter Eintrag: Diamex-ISP in der irgendwann mal aktuellen Arduino-IDE 1.6.4

iyahdub

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 >!
10 LET Loop=Infinite
20 GO TO 10

MindCode

Okay, hab mich in das thema eingelesen...
Verstehe es auch. Was ich aber nicht gefunden habe ist, ob man diese fuses auch mit arduino setzen kann?

michael_x

Im Arduino Paket ist auch avrdude dabei. Der kann mehr als die Arduino Oberfläche davon anbietet.

Weiterlesen ...

MindCode


mkl0815

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.

Go Up