Cod Lab6 Ex3
Cod Lab6 Ex3
void Init_adc()
{
ADMUX = 0b01000000; //Referin?a - AVCC
ADCSRA= 0b10000111; //Activare ADC; Prescaler = 128;
}
void init_timer0()
{
SREG = 1<<7; // Global Interrupt Enable
TCCR0 = 0b00001011; //CTC-3,6; Prescaler-0,1,2
TCNT0 = 0;
OCR0 = 125;
TIMSK |= 0b00000010; //set interrupt OCM
}
switch (c)
{
case 0:
PORTC |= 0b00111111;break;
case 1:
PORTC |= 0b00000110;break;
case 2:
PORTC |= 0b01011011;break;
case 3:
PORTC |= 0b01001111;break;
case 4:
PORTC |= 0b01100110;break;
case 5:
PORTC |= 0b01101101;break;
case 6:
PORTC |= 0b01111101;break;
case 7:
PORTC |= 0b00000111;break;
case 8:
PORTC |= 0b01111111;break;
case 9:
PORTC |= 0b01100111;break;
}
switch (p)
{
case 4:
PORTA |= 0b00001000;break;
case 3:
PORTA |= 0b00000100;break;
case 2:
PORTA |= 0b00000010;break;
case 1:
PORTA |= 0b00000001;break;
};
}
if (ms == 100)
{
adv = (readADC(6));
freq = ((float)(fMax-fMin))/ADCmax*adv+fMin;
TOP = 1000000/freq-1;
ICR1H = TOP>>8;
ICR1L = TOP;
OCR1BH = ((TOP+1)/2)>>8;
OCR1BL = (TOP+1)/2;
value=freq/10;
ms=0;
}
else ms++;
void init_Buzzer()
{
DDRD |= 1<<4; //PD4 - output
TCCR1A = 0b00100010;
TCCR1B = 0b00011010;
}
void main()
{
DDRA = 0b00001111; //seteaza pinii de ie?ire
DDRC = 0b11111111;
init_Buzzer();
init_PWM2();
init_timer0();
Init_adc();
}