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

солар

Members
  • Постов

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

  • Посещение

Весь контент солар

  1. Клавиатура пианино имеет 88 клавиш. Их нужно нажимать в определенном порядке. 1. Применить "бегущую" единицу, организованную на логике и сдвигающем регистре в частности. Аккорды брать, распараллеливая единицу. Разрядность регистра должна соответствовать длине мелодии. Достоинство: простая схема на логике. Недостаток: гибкости нет при желании озвучить другой нотный лист. 2. Микроконтроллер. Перебор выводов как нужно и когда нужно. Достоинство: универсальность. По идее можно тупо указать ноты в программе - такую-то (такие-то) играть столько-то. Недостаток (в вашем случае): нужно написать и отладить программу. По первому варианту - тактовый генератор, сдвиговый регистр, дешифратор для каждого соленоида. По второму варианту - array[]= {ноты, длительность, ноты, длительность.......}; // ноты - какие из 88-ми нажать n= 0; while(не кончился array) { нажать клавишу(ы)array[n], суть включить соленоид; выдержать длительность array[n+1]; отпустить клавишу(ы); n+= 2; }
  2. Посредством putchar(0x30+PINC.0+PINC.1*2); // заморозилось и далее не выполняется, но аппаратный таймер работает, юарт флудит (011111111101111111110...) имеем: ttt.rar
  3. Т.к. у вас линии РС0 и РС1 настроены как входы, то, может быть, имеет смысл опрашивать их как PINC.0 и PINC.1? Насчёт якобы флуда УАРТа - частоту нормальную поставьте, например, 7.3728 МГц. И ещё - выкладывайте проекты, не заставляйте отвечающего заново всё рисовать и писать программу.
  4. МК представляет собой нагрузку. Видимо, несоизмеримо большую, нежели вольтметр. Попробуйте совет @mvkarp .
  5. Это как это? И относительно чего транзистор коммутирует сигнал?
  6. Неверное утверждение. Цикл конечный, причём сразу по прохождении всех операторов. Из цикла выкидывает оператор break. Для убедительности снял ассемблерный (оттранслированный) код: ; 0000 0011 while (i==1) // 3 сек LDI R30,LOW(1) CP R30,R5 BRNE _0x8 ; 0000 0012 { if(m==3){PORTB.2=1;} LDI R30,LOW(3) CP R30,R4 BRNE _0x9 SBI 0x18,2 ; 0000 0013 else{PORTB.2=0;} RJMP _0xC _0x9: CBI 0x18,2 _0xC: ; 0000 0014 break; ; 0000 0015 }; _0x8: ; 0000 0016 ; 0000 0017 while (i==2) // 6 сек LDI R30,LOW(2) CP R30,R5 BRNE _0x11 Опять же - с какого перепуга она должна измениться? Было, предположим, условие на взведение. Чтобы порт стал "0", нужен сброс. И где он?
  7. Потому, что break прекращает действие while(), а m, видимо, был равен 3. С какой целью в цикл вставлен break?
  8. В предопределениях заменить RC0, RC1 на RB4 и RB5. Не забыть про инициализацию. И пробовать. В конце концов прочесть протокол и лапками напечатать программу.
  9. Цешкой, авометром, ПИНом, мегаомметром и т.д. Сигналы инопланетян несколько посложнее.
  10. Приведите, пожалуйста, схему и саму задачу.
  11. Много, очень много толстых жирных плюсов. 2ТС: Не нужно колхозить. Нужно думать не о красоте (не Новый год), а о безопасности.
  12. ПДУ телека, например. Аааа, просёк - проблема войны с соседями. Ню-ню.
  13. Как показывает опыт, самая бяка в механике. Далеко за примерами ходить не надо - достаточно вспомнить про проблему корпусов для приблуд. К чему веду - определитесь с механикой. А там видно будет.
  14. На плате телевизора найдите номер шасси (обычно бывает в районе строчника). Далее идти, например, на rc5.ru. Там находите схему (можно и по типу телека). Ну и далее по обстоятельствам.
  15. У вас есть шанс разработать такую приблуду самостоятельно. Хотя бы на основе однопереключательной. Выкладывайте свои соображения.
×
×
  • Создать...