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

Алексей Еремеев

Members
  • Постов

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

  • Посещение

Ответы сообщества

  1. Пост Алексей Еремеев - сообщение в Маркировка направления вращения импортных электродвигателей для ЛПМ кассетного магнитофона (дэки) был отмечен как ответ   
    тот кто ставил неродной мог аккуратно вскрыть моторчик и поменять полярность щеток на плате регулятора
    офф: в конце 80-ых мне в руки попался обломок кассетного ЛПМ какого-то японца, движок был странный на вид, я его аккуратно разобрал, там был центробежный регулятор оборотов, т.е. грузики возле коллектора с пружинками рвали контакты к обмоткам. 
  2. Пост Алексей Еремеев - сообщение в Помогите с программированием микроконтроллера был отмечен как ответ   
    по-простому
    #define F_CPU 8000000UL // Работаем от внутреннего генератора 8МГц /* ------------------------------------------------------------------------- */ #include <avr/io.h> #include <util/delay.h> /* ------------------------------------------------------------------------- */ // раскомментировать если считать нажатие в момент отпускания //#define PRESS_ON_FALL 1 #define LEDS_PORT PORTB #define LEDS_DDR DDRB #define LED_1_BIT 0 #define LED_2_BIT 1 #define LED_3_BIT 2 #define LED_1_ON do { LEDS_PORT |= (1 << LED_1_BIT); } while (0) #define LED_1_OFF do { LEDS_PORT &= ~(1 << LED_1_BIT); } while (0) #define LED_2_ON do { LEDS_PORT |= (1 << LED_2_BIT); } while (0) #define LED_2_OFF do { LEDS_PORT &= ~(1 << LED_2_BIT); } while (0) #define LED_3_ON do { LEDS_PORT |= (1 << LED_3_BIT); } while (0) #define LED_3_OFF do { LEDS_PORT &= ~(1 << LED_3_BIT); } while (0) #define LED_1_ON_TIME 3000 #define LED_2_ON_TIME 1500 #define LED_3_ON_TIME 1500 #define BUTTONS_PORT PORTD #define BUTTONS_DDR DDRB #define BUTTONS_PIN PIND #define BUTTON_1_BIT 2 #define BUTTON_1_GET() (!(BUTTONS_PIN & (1 << BUTTON_1_BIT))) /* ------------------------------------------------------------------------- */ void button_wait_press(void) { // убеждаемся что кнопка отжата while (BUTTON_1_GET()) asm("nop"); // ждем пока кнопку нажмут и немного подержат (антидребезг) uint8_t check_counter = 0; while (1) { if (BUTTON_1_GET()) { check_counter++; } else { check_counter = 0; } _delay_us(100); if (check_counter > 100) break; } // если нужно - ждем отпускания #ifdef PRESS_ON_FALL while (BUTTON_1_GET()) asm("nop"); #endif } /* ------------------------------------------------------------------------- */ int main(void) { // Настраиваем порт B (3 пина) на выход LEDS_DDR |= (1 << LED_1_BIT) | (1 << LED_2_BIT) | (1 << LED_3_BIT); // гасим светодиоды LED_1_OFF; LED_2_OFF; LED_3_OFF; // Настраиваем ножку порта PD2 на вход BUTTONS_DDR &= ~(1 << BUTTON_1_BIT); // Подтягиваем PD2 внутренним резистором к +5в BUTTONS_PORT |= (1 << BUTTON_1_BIT); while(1) { LED_1_ON; _delay_ms(LED_1_ON_TIME); LED_1_OFF; button_wait_press(); LED_2_ON; _delay_ms(LED_2_ON_TIME); LED_2_OFF; button_wait_press(); LED_3_ON; _delay_ms(LED_3_ON_TIME); LED_3_OFF; button_wait_press(); } } /* ------------------------------------------------------------------------- */  
×
×
  • Создать...