Advertisement
elektronek

Martin M Klain - servo s attiny85 + SLEEP

Apr 29th, 2020
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.90 KB | None | 0 0
  1. /*
  2.  * ATTINY85 - clock 8MHz
  3.  * PB0 - servo
  4.  * PB2 - vstup proti +5V na probuzeni
  5.  *
  6.  */
  7. #define F_CPU 8000000ul
  8. #include <avr/io.h>
  9. #include <avr/interrupt.h>
  10. #include <avr/sleep.h>
  11. #include <util/delay.h>
  12.  
  13.  
  14. ISR(INT0_vect)
  15. {
  16.     // Odchytime INT0
  17. }
  18.  
  19.  
  20. int main(void)
  21. {
  22.     DDRB |= (1<<PB0);                       // PB0 je vystup
  23.     MCUCR &= ~((1<<ISC01)|(1<<ISC00));      // Low level int0 - typ
  24.     GIMSK |= (1<<INT0);                     // Povolime int0
  25.     TCCR0A |= (1<<COM0A1)|(1<<WGM00);       // Timer 0 - Fast PWM
  26.     TCCR0B |= (1<<CS02);                    // Timer 0 - 8MHZ / 256 = 31250
  27.     set_sleep_mode(SLEEP_MODE_PWR_DOWN);    // Sleep rezim
  28.  
  29.     sei();                                  // Povolime INT
  30.  
  31.     while (1)
  32.     {
  33.         sleep_mode();                       // Uspime
  34.         cli();                              // Zakazeme INT
  35.         OCR0A = 8;                          // Natoceni serva
  36.         _delay_ms(300);                     // Pockame
  37.         OCR0A = 40;                         // Natocime servo
  38.         _delay_ms(300);                     // Pockame
  39.         sei();                              // Povolime iNT
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement