Уведомления
Очистить все

Подайте идею!

2 Посты
2 Пользователи
0 Likes
4,580 Просмотры
x-storm
(@x-storm)
Active Member
Присоединился: 15 лет назад
Сообщения: 5
Topic starter  

Вобщем, не знаю че бы такое замутить(желательно на микроконтроллере) на ДР.
Мужики, посоветуйте ченить, плз!
_______________________________________________________________________
-- 73!


Цитата
Мужик
(@yk)
Eminent Member
Присоединился: 15 лет назад
Сообщения: 39
 

Попробуй разберись с простенькой програмкой под WinAVR.
Cпаять схему просто как 2*2: 2 светодиода, 1 кнопка, 2 резистора и микроконтроллер. Для начала хватит:
/* 1MHZ,
кнопка висит к земле на PD.3, светодиод на PB.0 и PB.1, при нажатой кнопке светодиод мигает с
периодом 10мс,
при отпущенной кнопке мигает с периодом 200мс
*/

#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>

void led (char a){

unsigned char i;

switch (a){

case 0: // кнопка не нажата
{
for (i=0; i<200; i++){
PORTB = 0b00000010; // green led
_delay_ms(100);
PORTB = 0x00;
_delay_ms(100);
}
//return 0;
};

case 1: // кнопка нажата
{
for (i=0; i<200; i++){
PORTB = 0b00000001; // red led
_delay_ms(5);
PORTB = 0x00;
_delay_ms(5);
}
//return 0;
}
}
}

void button (void){
if ((PIND & 0b00001000) == 0b00001000) led(0);
else led(1);
}

int main (void){

DDRB = 0xFF; // portb - output
PORTB = 0x00;
DDRD = 0x00; // all - inpupts
PORTD = 0xFF; // all pull up resistors ON

while(1) {
button();
}
}


ОтветитьЦитата