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
}