Sei sulla pagina 1di 2

//control blinking LED by button

#include <avr/io.h>
#define F_CPU 1000000
#include <util/delay.h>
int main ()
{
DDRB |= 1<<1; // PB1 as output
DDRC &= ~ (1<<1); // PC1 as input
while (1)
{
if (PINC & (0<<1) == 1) // ko nhan nut
{
PORTB |= 1<<1; // PB1 as HIGH
}
else PORTB &= ~(0<<1); // PB1 as LOW
}
}

//
if (flag_i0 == 0x00) {
if (i0 < a1) {
OCR0A = bang0[i0];
OCR0B = bang0[i0 + a1];
OCR2A = bang0[i0 + a2];
i0++;
}
else if (i0 == a1) {
OCR0A = bang0[i0];
OCR0B = bang0[i0 + a1];
OCR2A = bang0[i0 + a2];
TCCR2A = (1 << COM2A1)| (1 << COM2A0)|(1<<WGM21) | (1 <<
WGM20) | (1 << WGM22);
i0++;
}
else if (i0 == (a1+1)) {
PORTC ^= (1 << lowC);
OCR0A = bang0[i0];
OCR0B = bang0[i0 + a1];
OCR2A = bang0[i0 + a2];
i0++;
}

else if (i0 < a2) {


OCR0A = bang0[i0];
OCR0B = bang0[i0 + a1];
OCR2A = bang0[i0 - a1];
i0++;
}
else if (i0 == a2) {
OCR0A = bang0[i0];
OCR0B = bang0[i0 + a1];
OCR2A = bang0[i0 - a1];
TCCR0A = (1 << COM0A1)| (0 << COM0A0) | (1 << COM0B1)| (0
<< COM0B0) | (1<<WGM01) | (1 << WGM00) | (1 << WGM02);
i0++;
}
else if (i0 == (a2 +1)) {
PORTC ^= (1 << lowB);
OCR0A = bang0[i0];
OCR0B = bang0[i0 + a1];
OCR2A = bang0[i0 - a1];
i0++;
}
else if (i0 < a3) {
OCR0A = bang0[i0];
OCR0B = bang0[i0 - a2];
OCR2A = bang0[i0 - a1];
i0++;
}
else if (i0 == a3) {
OCR0A = bang0[i0];
OCR0B = bang0[i0 - a2];
OCR2A = bang0[i0 - a1];
i0++;
TCCR0A = (1 << COM0A1)| (1 << COM0A0) | (1 << COM0B1)| (0
<< COM0B0) | (1<<WGM01) | (1 << WGM00) | (1 << WGM02);
}
else if (i0 == (a3 + 1)) {
PORTC ^= (1 << lowA);
OCR0A = bang0[i0];
OCR0B = bang0[i0 - a2];
OCR2A = bang0[i0 - a1];
i0 = 0;
flag_i0 = 0xFF;
}

Potrebbero piacerti anche