Advertisement
miszczo

[AVR]PWM ATmega 644PA

Mar 31st, 2013
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.83 KB | None | 0 0
  1. /*
  2.  * main.c
  3.  *
  4.  *  Created on: 30-03-2013
  5.  *              23:09:06
  6.  *      Author: miszczo
  7.  *      16MHz
  8. */
  9.  
  10.  
  11.  
  12. #include <avr/io.h>
  13. #include <util/delay.h>
  14. #include "LCD/lcd44780.h"
  15.  
  16.  
  17.  
  18. int main(void)
  19. {
  20.  
  21.     DDRB |= (1<<PB3);            // OC0A jako wyjscie
  22.     TCCR0A |= (1<<COM0A1) | (1<<COM0A1);     // set on compare/clear at bottom
  23.     TCCR0A |= (1<<WGM00) | (1<<WGM01);   // fast pwm TOP 0xff
  24.     TCCR0B |= (1<<CS00);             // prescaler 1
  25.  
  26.     DDRD &= ~(1<<PD0) | ~(1<<PD1);       //PD0 jako wejscie
  27.     PORTD |= (1<<PD0) | (1<<PD1);
  28.  
  29.     OCR0A = 127;
  30.  
  31.     lcd_init();
  32.     lcd_int(OCR0A);
  33.  
  34.  
  35.  
  36.  
  37.     while(1)
  38.     {
  39.  
  40.         if(((PIND & (1<<PD0))==0) & (OCR0A<255))
  41.         {
  42.             lcd_cls();
  43.             OCR0A++;
  44.             lcd_int(OCR0A);
  45.             _delay_ms(10);
  46.         }
  47.  
  48.         if(((PIND & (1<<PD1))==0)&(OCR0A>0))
  49.         {
  50.             lcd_cls();
  51.             OCR0A--;
  52.             lcd_int(OCR0A);
  53.             _delay_ms(10);
  54.  
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement