Master писал(а):
Ты кажется противоречишь сам себе. С одной стороны ты управляешь звуком по прерыванию таймера, а изменения делаешь по ходу программ, да еще и в цикле да и еще используешь паузу. Запиши в прерывание таймера, изменение частоты звучания.
Ну я вроде бы не использую прерывания

Код:
Chip type : ATtiny13
Clock frequency : 9,600000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 16
*****************************************************/
#include <tiny13.h>
#include <delay.h>
// Declare your global variables here
int i;
void main(void)
{
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out
// State5=T State4=T State3=T State2=T State1=T State0=0
PORTB=0x00;
DDRB=0x01;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 9,375 kHz
// Mode: CTC top=OCR0A
// OC0A output: Toggle on compare match
// OC0B output: Disconnected
TCCR0A=0x42;
TCCR0B=0x05;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;
while (1)
{
// Place your code here
for (i=10; i>0; i--)
{
OCR0A=3+i;
delay_ms(20);
}
for (i=0; i<10; i++)
{
OCR0A=3+i;
delay_ms(20);
}
};
}
И как бы мне записать в прерывание таймера изменение частоты звучания, если таймер у меня один и я использую его для генерации частоты.