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

qulik.13

Участник*
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о qulik.13

  • Звание
    Участник
    Участник
  • День рождения 09.02.1986

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Осцилограф - эт хорошо! :) Но не всегда он под рукой. А вот метод "ногодрыганья" и светодиоды в домашних условиях помогают, да бы поймать тот или иной момент! :)
  2. Гыы! Разобрался! I am Tupik! Пытался изменять частоту с дискретностью в 5кГц от 1кГц до 1 МГц... Абсолютно не учел, что с повышением частоты сигнала, дискретность его изменения падает! Например при значении регистра ICR1 = 20 частота сигнала ШИМ = 800кГц, а при ICR1 = 19 частота сигнала ШИМ = 842,10кГц следовательно чтобы переключить значение надо нажать 42/5=4 раза кнопку... Топик OFF!
  3. Нет нет! Обработка прерывания занимает каких нибудь 20 мсек (в случае с кнопкой задержка от дребезга контактов 200 мсек). МК не срабатывает на каждое прерывание (нажатие)! Даже если между ними 1 сек! Приходится крутить энкодер кучу раз или кнопку держать несколько секунд.
  4. Добрый день! Столкнулся со следующей трудностью: генерирую на ATmega8 ШИМ сигнал. Использую для это T/C1 в режиме Fast PWM со значением TOP=ICR1. Для изменения частоты пробовал 2 варианта: 2 кнопки притягивающие вывод МК к земле, постоянно опрашиваемые в цикле while и, энкодер, который срабатывает по прерыванию int0 (falling edge). В обоих случаях при частотах приближающихся к 600-800кГц МК начинает жутко тормозить и срабатывает при пятом-десятом нажатии кнопки (повороте энкодера). Причем чем больше частота, тем больше нажатий кнопки МК пропускает. Чего делать в такой ситуации? :unsure:
  5. Да, Спасибо! Нашел где это отображается. Действительно самый простой вариант :)
  6. Эм. Ссори за повтор вопроса! :) Ненашел свой топик, решил повторно создать темку и получил бан! :smile3009: Тем не менее всем спасибо за подсказки!! Насколько я понял в AVRStudio это можно сделать кликнув по View/Disassembler... и посчитав строчки.
  7. Доброго дня! Подскажите плиз, как определить время выполнения операции? В частности инструкции: if (PINB & 0x01){...}, без входа в скобки?
  8. Доброго времени суток! :rolleyes: Подскажите, плиз, как можно оценить время выполнения той или иной операции. В частности операции if (без входа внуть скобок). :cranky: while(1) { if (PINB & 0x01); else { ... } if(...); else { ... } }
  9. WDTimer

    :) Ну да! Место бывает и заканчивается! Приходиться брать МК "потолще"! :)))) Посмотрел про modbus в Википедии. А это интересно! Я новичек в использовании интерфейсов (да и МК тоже :))и пока кроме как SPI и RS-232 ничего не использовал. А modbus - это уже что-то! Точнее это уже протокл. Надо познакомится с ним поближе. :1111493779:
  10. WDTimer

    Верно подмечено по поводу enter. Подтверждение переданного байта - это как минимум грамотно. А вот символа мне вполне достаточно для принятия решения (выбрать один из 8 вариантов): switch © { case 48: mig_led1(); break; //0 case 49: mig_led2(); break; //1 ... и т.д. } По крайней мере не требуется сравнивать строки! Что сэкономит Flash память. П.С. Посимвольный прием(передачу) я освоил. :)
  11. WDTimer

    Принцип получения строки по одному символу достаточно прост. А gets() я хотел применить, что бы текст программы сократить. Но после обсуждения понял, что лучше таки по одному символу принимать. :) А вот по поводу символа конца строки. передавать его все равно нужно, так что лучше сохранить. Принимаемая строка - это условность (для универсальности программы). Примимается один символ и в зависимости от его значения принимается решение. А вот передавать по USART нужно строку. Передается она при помощи puts(). Возникает мысль передавать тоже по символу :) , но как на это среагирует копьютер? Тоже надо драйвер по прерыванию собрать, думаю справлюсь...
  12. WDTimer

    Да, соглашусь со всем! gets() "убъет" кучу времени, да и надежность никакая. Спасибо за рекомендации! :) А драйвер для считывания строки по одному символу я попробую свой сделать. Хочется разобраться до конца.
  13. AVR Studio MakeFile

    Как правильно заметил ARV: абсолютно не терпит русских букв! Причем даже путь, указывающий где находится проект, тоже должон быть латиницей! Вот, а стоило столько мучаться?! :crying:
  14. WDTimer

    А что меняет выбор варианта оптимизации? В AVR Studio есть варианты: О0 - Оs. Поисковик ничего не выдал. Спасибо! Замечание с константами я учту на будущее.
  15. WDTimer

    Ой! А как же тогда быть? Использовать простое приравнивание REGISTOR=0x05?
×
×
  • Создать...