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

LoginzaID: 143625178

Members
  • Постов

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

  • Посещение

Информация

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

Электроника

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

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения LoginzaID: 143625178

Новичок

Новичок (1/14)

  • Преданный
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме
  • 10 лет  на форуме

Последние значки

1

Репутация

  1. Ключи на больший ток чем номинальный рабочий и запас по напряжению, нижние драйвера с ограничением по току, верхние тра-ры просто в ключевом режиме открывать(драйвер обычный не подойдет, без шима наступит момент когда закончится заряд на буферной емкости). Если планируется что будет инерционное движение то добавить еще один ключ с тормозным резистором и компаратором.
  2. Большое спасибо, это помогло! Буквально за пару минут до вашего ответа нашел подобное предложение в интернете!
  3. LoginzaID: 143625178

    Не выполняется if

    Всем привет! Решил начать писать и столкнулся с такой проблемой, что не выполняется условие 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); } } }
  4. Собственно говоря чем не устраивают серийно выпускаемые системы плавного пуска для асинхронных двигателей?
×
×
  • Создать...