Хочу написать програму она простая, но для меня пока не очень. Использую Тину2313.
Задача:
Есть 4 порта нада их поставить на выводы. ПОРТ1 выдает +5В на случайную длительность от 5-20 сек, например. ПОРТ2 включается после того как перестал работать ПОРТ1 (это важно), тоже на случайное число. ПОРТ3 и ПОРТ4 работает аналогично как 1 и 2.
Зачем это? для дискотеки шота типа светомузыки. Есть световой сканер фото ниже, вот хочу чтобы он крутился в разные стороны верх, вниз, направо, налево в случайно порядке и случайным интервалом. Можно добавить еще порты например для смены свечения красных зеленых лампочек например, мегание и т.п. но с этем проще.
Применяю Тину2313 т.к. есть в наличии. Возможно есть что-то подешевлей для моих целей?
Помогите!
Помогите написать програму, Tiny2313
Помогите написать програму, Tiny2313
- Вложения
-
- Tiny2313.rar
- Фото прибора + начальная прошивка и протеус
- (286.11 КБ) 176 скачиваний
- Реклама
Re: Помогите написать програму, Tiny2313
вот так попробуй
Код: Выделить всё
#include <tiny2313.h>
#include <delay.h>
unsigned char x; //генератор случайного числа
interrupt [TIM0_OVF] void timer0 (void)
{x++; if(x>20)x=5;}//генерируем случайное число
void main(void)
{
PORTA=0x00;
DDRA=0x07;
PORTB=0x00;
DDRB=0xFF;
PORTD=0x00;
DDRD=0x7F;
ACSR=0x80;
TCCR0A = 0;
TCCR0B = 0b000000001;
TIMSK=TIMSK|=0b00000010;
TCNT0=0;
OCR0A=0x00;
OCR0B=0x00;
x=5; //по умолчанию 5 секунд
while (1)
{
PORTB.0 = 1;//включаем первую линию
delay_ms(x*100);
PORTB.0 = 0;//обнуляем линию
PORTB.1 = 1;//включаем вторую линию
delay_ms(x*100);
PORTB.1 = 0;//обнуляем линию
PORTB.2 = 1;//включаем третью линию
delay_ms(x*100);
PORTB.2 = 0;//обнуляем линию
PORTB.3 = 1;//включаем четвертую линию
delay_ms(x*100);
PORTB.3 = 0;//обнуляем линию
};
}
