Перейти к содержанию

alfa19

Members
  • Постов

    3
  • Зарегистрирован

  • Посещение

Весь контент alfa19

  1. Я так понимаю, что третье нажатие кнопки приведет к исполнению этой строки, результатом которой будет отсутствие свечения светодиодов портов PB2, PB3 и загорится светодиод порта PB4. И будет гореть до 4 нажатия кнопки. В результате 4 нажатия выполнится по команде: if(v==4)v=0; переход на команду: if(v==0) PORTB.2 = 0; PORTB.3 = 0; PORTB.4 = 0; , которая должна погасить все светодиоды. Благодарю за помощь. Только начал изучать.
  2. Прошу помочь с простенькой программкой для AVR Tiny13a (накидал в Code vision AVR 3.39b): /******************************************************* This program was created by the CodeWizardAVR V3.39b Chip type : ATtiny13A AVR Core Clock frequency: 9,600000 MHz Memory model : Tiny External RAM size : 0 Data Stack size : 16 *******************************************************/ #include <tiny13a.h> #include <delay.h> unsigned char v; interrupt [EXT_INT0] void ext_int0_isr(void) { v++; if(v==4)v=0; delay_ms (100); } void main(void) { DDRB=(1<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); PORTB=(0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (1<<PORTB1) | (1<<PORTB0); // External Interrupt(s) initialization // INT0: On // INT0 Mode: Low level // Interrupt on any change on pins PCINT0-5: Off GIMSK=(1<<INT0) | (0<<PCIE); MCUCR=(0<<ISC01) | (0<<ISC00); GIFR=(1<<INTF0) | (0<<PCIF); // Globally enable interrupts #asm("sei") while (1) { if(v==0) PORTB.2 = 0; PORTB.3 = 0; PORTB.4 = 0; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if(v==1) PORTB.2 = 1; PORTB.3 = 0; PORTB.4 = 0; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if(v==2) PORTB.2 = 0; PORTB.3 = 1; PORTB.4 = 0; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if(v==3) PORTB.2 = 0; PORTB.3 = 0; PORTB.4 = 1; } } Проект в proteus 8 (в прикрепленном rar) представляет управление с помощью контроллера одной кнопкой тремя светодиодами по очереди. Т.е. в исходном состоянии порты со светодиодами PB2, PB3, PB4 - низкий уровень. К PB0 ничего не подключено. Кнопка на PB1, второй конец на землю. При 1 нажатии загорается и горит PB2, при втором нажатии PB2 тухнет, зажигается PB3, при третьем - тухнет PB3 и загорается PB4, при четвертом - все порты со светодиодами выключаются. И по кругу. При запуске в Протеусе начинают подмаргивать PB3, PB4. При первом нажатии PB2 загорается, при втором моргают PB3, PB4. test 2 one click.rar
×
×
  • Создать...