Go Down

Topic: Attiny mit ISP Programmer über Arduino IDE (Read 920 times) previous topic - next topic

Chandler_B

Hi,
ich möchte gerne mit der Arduino IDE meinen Kontroller (Attiny45) mit DIAMEX PROG-S :: ISP-Programmer für AVR  programmieren.
LED's funktionieren auch ganz gut (also das Beispiel 'Blink') jetzt möchte ich aber ganz gerne einen Servomotor Programmieren. Dazu nehme ich das Servo->Sweep
Dieses Programm ändere ich auf meinen Pin um

Code: [Select]
void setup()
{
  myservo.attach(0);
}


Damit soll das PWM-Signal an Pin0 erstellt werden. Den rest des Programms lasse ich wie es ist.
Allerdings funktioniert das nicht. ich bekomme die Fehler

C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp: In function 'void __vector_3()':
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:105: error: cannot convert 'volatile uint8_t*' to 'volatile uint16_t*' for argument '2' to 'void handle_interrupts(timer16_Sequence_t, volatile uint16_t*, volatile uint16_t*)'
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp: In function 'void initISR(timer16_Sequence_t)':
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:151: error: 'TCCR1A' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:152: error: 'TCCR1B' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:159: error: 'TIFR1' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:160: error: 'TIMSK1' was not declared in this scope


leider kann ich mit den Fehler nichts anfangen.
Kann man das doch irgendwie zum funktionieren bringen?
Chandler

uwefed

die Fehler
Code: [Select]
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:151: error: 'TCCR1A' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:152: error: 'TCCR1B' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:159: error: 'TIFR1' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:160: error: 'TIMSK1' was not declared in this scope

beziehen sich auf Register des ATmega328 die, so schätze ich, beim ATtiny45 nicht vorhanden sind oder einen anderen Namen haben.
Daraus ergibt sich daß die Servo.h Bibliothek ind er Form nicht kompatibel mit der ATtiny45 Hardware ist. Du brauchst eine Servo-Bibliothek für den tiny

Grüße Uwe

sven222

Der Attiny45 hat einfach einen Timer weniger, wie der ATmega des Arduino. Deshalb bringt er die Meldungen, dass TCCR1A etc nicht kennt. Wirklich erhellend für mich war es mit den Timern des Attinys selbst zu arbeiten, und das Handbuch zu durchforsten, da lernt man so einiges.
Den Timer TCCR1 gibt es zwar im ATTiny, der wird aber vom Arduino für PWM und Co. verwendet. Deshalb steht der nicht zur Verfügung.
Versuch doch mal Deinen Servo mit der SoftwareServo.h anzusteuern. Die scheint auf ATTiny85 zu laufen, der hat dieselben Register. Jetzt muss es nur zusammen mit deinem Programm klein genug sein, dass es auf den ATTiny45 passt.

http://projectsfromtech.blogspot.de/2013/03/attiny85-servo-softwareservo-library.html

Grüße,

Sven

Go Up