Jump to content

LoginzaID: 143625178

Members
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Обычный

About LoginzaID: 143625178

  • Rank
    Новенький

Информация

  • Пол
    Мужчина
  • Город
    Екатеринбург

Электроника

  • Стаж в электронике
    6-10 лет
  • Оборудование
    LUKEY-702, Fluke 190с.

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Большое спасибо, это помогло! Буквально за пару минут до вашего ответа нашел подобное предложение в интернете!
  2. Всем привет! Решил начать писать и столкнулся с такой проблемой, что не выполняется условие if. Конкретно не гасится светодиод. Уже и не знаю что думать. #define F_CPU 16000000UL #define true 1 #define false !true #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> int settime = 20000; uint8_t row = 0x80; uint8_t mport = 0xFF; uint8_t mrow = 0; void UART_Init(void) { UCSRB|= (1<<TXEN); UCSRC|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); UBRRL = 103; } void Timer1_Init(void) { TCCR1B |= (1<<CS12)|(0<<CS11)|(1<<CS10);//Предделитель = 0 TIMSK |= (1<<TOIE1);//Разрешить прерывание по переполнению таймера 1 TCNT1 = settime;//Начальное значение таймера } ISR(TIMER1_OVF_vect) { row = row >> 1; if(row != 0) { PORTC = row; } else { row = 0x80; PORTC = row; } TCNT1 = settime;//Начальное значение таймера _delay_ms(1); if(PINB != 0xFF && mport == 0xFF) // Если есть нажатая кнопка { mrow = row; mport = PINB; PORTD |= (1<<PD4); } } int main(void) { /* Replace with your application code */ UART_Init(); Timer1_Init(); //UART_Send_Str("MKPROG.RU"); DDRA = 0xFF; // Порты на выход PORTA = 0xFF; // Светодиоды вкл. DDRB = 0x00; // Порты на вход DDRC = 0xFF; // Порты на выход PORTC = 0x80; // Первоначальное положение DDRD |= (1<<PD4); // Порт на выход asm("sei");//Разрешить прерывания _delay_ms(5000); while (1) { if (mport == 0xFF) { _delay_ms(500); PORTD&=~(1<<PD4);//гасим _delay_ms(500); } } }
×
×
  • Create New...