ProjektAttiny25.c
1 | /*
| 2 | * ProjektAttiny25.c
| 3 | *
| 4 | * Created: 12.05.2014 15:38:55
| 5 | * Author: Test1
| 6 | */
| 7 |
| 8 |
| 9 | #include <avr/io.h>
| 10 | #include <avr/interrupt.h>
| 11 |
| 12 | int maxpwm = 100;
| 13 | int dutypwm =80;
| 14 |
| 15 |
| 16 |
| 17 | void Timer1(){
| 18 |
| 19 | TCCR1 |=(1<<CTC1)|(1<<PWM1A)|(1<<COM1A1)|(1<<CS12);
| 20 | OCR1C = maxpwm;
| 21 | OCR1A = dutypwm;
| 22 |
| 23 | TIMSK |=(1<<OCR1A);
| 24 |
| 25 | }
| 26 |
| 27 | ISR (TIMER1_COMPA_vect)
| 28 | {
| 29 | int i_unten=0;
| 30 | int i_oben= 1;
| 31 |
| 32 |
| 33 | if(i_oben==1)
| 34 | {
| 35 | maxpwm=maxpwm -10;
| 36 | OCR1C=maxpwm;
| 37 | if(maxpwm<=100)
| 38 | {
| 39 | i_unten=0;
| 40 | i_oben=1;
| 41 | }
| 42 | else
| 43 | i_oben=1;
| 44 | i_unten=0;
| 45 |
| 46 | }
| 47 | if(i_unten==1)
| 48 | {
| 49 | maxpwm+=10;
| 50 | OCR1C=maxpwm;
| 51 | if(maxpwm>=190)
| 52 | {
| 53 | i_oben=1;
| 54 | i_unten=0;
| 55 | }
| 56 | else
| 57 | i_oben =0,
| 58 | i_unten=1;
| 59 | }
| 60 |
| 61 |
| 62 | PORTB^=(1<<PB1);
| 63 | TCCR1 &=~(1<<CTC1);
| 64 |
| 65 |
| 66 |
| 67 | };
| 68 |
| 69 | int main(void)
| 70 | {
| 71 | DDRB=0x07;
| 72 |
| 73 | PORTB|=(1<<PB3);
| 74 | Timer1();
| 75 | while(1)
| 76 | {
| 77 |
| 78 | if(PORTB|=(1<<PB3))
| 79 | {
| 80 |
| 81 |
| 82 | sei();
| 83 | }
| 84 | else
| 85 | cli();
| 86 | }
| 87 |
| 88 | }
|
|