Чт мар 28, 2019 15:51:08
Вс мар 31, 2019 12:19:21
Пн апр 01, 2019 19:16:19
void main(void){
PORTB=0x00;
DDRB=0x00000111;
while (1)
{ }
}
Пн апр 01, 2019 20:17:07
Вт апр 02, 2019 08:15:50
Вт апр 02, 2019 08:36:39
Вт апр 02, 2019 08:38:16
Вт апр 02, 2019 08:41:43
Вт апр 02, 2019 09:15:12
Вт апр 02, 2019 09:26:35
Чт июн 06, 2019 19:08:58
Сб июн 08, 2019 16:47:15
Сб июл 06, 2019 15:11:39
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00;
UBRRL=0x67;
Сб июл 06, 2019 16:14:34
Сб июл 06, 2019 22:23:40
Ср июл 17, 2019 09:36:30
#include <tiny13a.h>
#define SIGNAL_PIN PINB.0
#define TIME_MS 2500
#define OUT_PIN_1 PORTB3
#define OUT_PIN_2 PORTB4
volatile char flag = 2;
volatile unsigned int time = 0;
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
if (SIGNAL_PIN == 1) flag = 1;
if (SIGNAL_PIN == 0) flag = 0;
time = 0; // сбрасываем delay()
}
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0xB5;
time = time--;
}
void delay (unsigned int a)
{
time = a;
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00);
TCNT0=0xB5;
OCR0A=0x00;
OCR0B=0x00;
TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (1<<CS00); //включаем таймер
while (time); // висим пока счётчик не будет 0
TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (0<<CS00); //выключаем счётчик
}
void opening (void)
{
PORTB = (0<<OUT_PIN_1) | (1<<OUT_PIN_2);
delay(TIME_MS);
PORTB = (1<<OUT_PIN_1) | (1<<OUT_PIN_2);
}
void closing (void)
{
PORTB = (1<<OUT_PIN_1) | (0<<OUT_PIN_2);
delay(TIME_MS);
PORTB = (1<<OUT_PIN_1) | (1<<OUT_PIN_2);
}
void main(void)
{
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=(1<<CLKPCE);
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=Out Func3=Out Func2=In Func1=In Func0=In
// State5=T State4=1 State3=1 State2=T State1=T State0=T
PORTB=0x18;
DDRB=0x18;
// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (1<<TOIE0);
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Any change
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=(1<<INT0) | (0<<PCIE);
MCUCR=(0<<ISC01) | (1<<ISC00);
GIFR=(1<<INTF0) | (0<<PCIF);
#asm("sei") // Global enable interrupts
flag = 2;
delay(100); // пусть всё устаканится при включении
if (SIGNAL_PIN == 1) opening();
if (SIGNAL_PIN == 0) closing();
while (1)
{
switch (flag)
{
case 1:
opening();
if(flag == 0) break;
flag = 2;
break;
case 0:
closing();
if(flag == 1) break;
flag = 2;
break;
default:
flag = 2;
};
}
}
Ср июл 17, 2019 09:51:55
Ср июл 17, 2019 10:24:57
Чт окт 10, 2019 12:20:12
Чт окт 10, 2019 12:45:02