Mina små ATtiny45:or loggar snart flygtid.
När jag valde MCU så missade jag helt att dessa ATtiny45:or inte har 16-bitars timer, utan bara 8. Detta gör således att jag inte kan använda biblioteket som kommer med Arduino IDE:t.
Efter lite googling så hittar jag något som kallas för "SoftwareServo" och "Servo8bit", men får fasicken ingen av dessa exempelkoder att generera något på utgången.
Jag har ändrat klockan från default 1MHz till 8Mhz och bekräftat att utgången "fungerar" och att klockan går rätt genom att vifta med pinnen.
Fick ett förslag att använda interrupt och en PWM-rutin i denna men här tar det stopp. Är rent usel på Atmels datablad och "språk".
Har ni något förslag på hur jag ska bära mig åt? Någon som kanske har en färdig kodsnutt för ett servo som nyttjar interrupt?
EDIT: Nedan är ett av dom färdigskrivna exemplen för Servo8bit. Denna kompileras utan varningar men inget händer på utgången.
Det är också "pinne 0" jag viftat med och bekräftat fungerar.
Kod: Markera allt
#include "Servo8Bit.h"
int main()
{
Servo8Bit myServo; //create a servo object.
//a maximum of five servo objects can be created
myServo.attach(0); //attach the servo to pin PB1
//sweep the servo
while(1)
{
for(int pos = 0; pos <90; pos++) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myServo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(int pos = 90; pos > 1; pos--) // goes from 180 degrees to 0 degrees
{
myServo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
}