Я его полностью поддерживаю.
Программирую на Fuse AtmelAVR.
Чтоб не заморачиваться с установками, по факту лучше сразу предусмотреть часы, чем сначала сделать безвозмездно неважно что, потом выкрасить, выбросить и начать делать уже нормально.чтобы свет в аквариуме
Там 2 уарта, вы используете оба?Саша Леськив писал(а):Собираю тест-плату с серцем на микроконтроллере ATmega64A
Почему не можете? Перемычку между MAX232 (или что там у Вас) и МК. И снимать ее на время программирования.P.P.S Эти ноги не могу использовать, ибо нужен юарт.
Код: Выделить всё
#include <tiny13.h>
unsigned char m_sec=0x00;//переменная мсек
unsigned char sec=0x00;//переменная сек
// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
m_sec++;//переменная увеличивается за одно прерывание
}
// Declare your global variables here
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=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State5=T State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x1F;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 125,000 kHz
// Mode: CTC top=OCR0A
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x02;
TCCR0B=0x03; //предделитель на 64
TCNT0=0x00;
OCR0A=0x7D; //значение сравнения 125
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=0x04;
// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;
DIDR0=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// Global enable interrupts
#asm("sei")
while (1)
{
if(m_sec==100){m_sec=0;sec++;} //должна получатся 1 секунда
if(sec==100){PORTB.0=1;} //должно тикать 10 секунд
}
}

kLeR1k писал(а):И как можно отключить ШИМ и посадить ногу на землю?
Код: Выделить всё
TCCR0A &= ~((1<<COM0A0)|(1<<COM0A1)); // если выход А
TCCR0A &= ~((1<<COM0B0)|(1<<COM0B1)); // если выход B
PORT &= ~(1<<BIT);