Не влияетЯ бы только поменял всё на безусловное присваивание
Код: Выделить всё
while (1)
{
uint8_t Value;
Value = PINE;
if (!(Value & (1<<PE1)))
OCR1A=300;
if (!(Value & (1<<PE0)))
OCR1A=1000;
}Код: Выделить всё
while (1)
{
uint8_t Value;
Value = PINE;
if (!(Value & (1<<PE1)))
OCR1A=300;
if (!(Value & (1<<PE0)))
OCR1A=1000;
}Код: Выделить всё
OCR1A = 300;
_delau_ms(1000);
OCR1A = 1000;
_delay_ms(1000);Код: Выделить всё
#define F_CPU 8000000UL //obyavleniye chastoty CPU mk
#include <avr/io.h> //podklucheniye biblioteki mk
#include <avr/interrupt.h> //podklucheniye biblioteki zaderjek
#include <util/delay.h> //podklucheniye zaderjek
uint16_t Sch=100;
static void ti_in(void)
{
TCCR1A|=0; //регистр управления таймером/счетчиком
TCNT1|=0; //Регистр таймера/счетчика
OCR1A=Sch; //значение сравнения, до 16 бит
TIMSK|=(1<<OCIE1A);
TCCR1B|=(1<<CS12)|(1<<WGM12); //установка делителя, режима работы таймера
}
ISR(TIMER1_COMPA_vect) //функция, выполняемая автоматически, при совпадении числел - счетчика и установленного значения
{
PORTC=~PORTC;
}
static void TI_Write(unsigned int Sch)
{
//unsigned int sreg = SREG;
//cli();
OCR1A=Sch;
//SREG=sreg;
}
int main(void)
{
cli();
DDRC=0xFF;
PORTE = (1<<PE0) | (1<<PE1);
Sch=100; //в реале период / 2
ti_in();
sei();
while (1)
{
if (!(PINE & (1<<PE1)))
{
TI_Write(300);
_delay_ms(100);
}
}
}
Код: Выделить всё
int main(void)
{
DDRC=0xFF;
PORTE = (1<<PE0) | (1<<PE1);
ti_in();
sei();
while (1)
{
OCR1A = 300;
_delau_ms(1000);
OCR1A = 1000;
_delay_ms(1000);
}
}