Мастер Ломастер писал(а): такая запись - довольно редкий частный случай для последовательных констант, а, например, для упомянутого мною случая с кодами кнопок последовательность кодов вовсе не обязательна и скорее всего нерациональна.
Кому-то частный случай, а у мя практически все константы последовательные.
а вот чем хорош мой подход. допустим, я объявил тип
Не спорю, может оказаться удобым. Может мне еще не подворачивалась задача.
, то если скажем во время выполнения этого куска кода возникнет прерывание, например, совпадение счетного регистра с регистром сравнения, то после выполнения этого куска МК перейдет к возникшему прерыванию?
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
Народ, помогите, буду очень благодарен.
Вопрос нубский.
Нужно заставить работать ЦАП на микроконтроллере. Контроллер STM32F100RB, на плате stm32vldiscovery
Вот написал я код:
По идеи последняя команда должна менять напряжение, которое выдаёт ЦАП. Но ноль эмоций. Пробовал разные варианты из примеров - не пашет. Спаял всё верно, если просто выдать 1 на ногу, то светодиод горит.
подскажите как сделать опрос портов ввода всех сразу atmega 8. цель в том что есть 5 кнопок и от того какая кнопка будет нажата первой будет зависеть следующие действие. заранее спасибо за помощь.
evil0o писал(а):подскажите как сделать опрос портов ввода всех сразу atmega 8. цель в том что есть 5 кнопок и от того какая кнопка будет нажата первой будет зависеть следующие действие. заранее спасибо за помощь.
всех портов сразу никак - их 4 штуки, а за один раз можно работать только с одинм портом
правда, что-то мне подсказывает, вы имели ввиду всех пинов одного порта (в одном порту 8 пинов) - то это дело другое, и делается это очень просто: PINB содержит состояние сразу всех 8-и своих пинов. просто считываете в переменную значение PINB в нужный момент и затем анализируете.
битва с дураками проиграна, победители торжествуют. слава победителям!
Теперь у меня возникла ещё проблема-в ниже перечисленном коде, если сделать задержку(не которая опрос кнопок, а между управлением состояния портов) меньше 170000 тактов(частота тактирования МК составляет 4 МГц), то появляется баг - если, например, в верхнем ряду зажжен 1 светодиод, а в нижнем-2, то иногда на секунду-две погасает то верхний(1) светодиод, то нижний (2). И так при любой комбинации, кроме верхний-1, нижний-1. Вот код:
Суровый код. Для начала могу сказать только то , что __restore_interrupt и __save_interrupt тут лишние. У них несколько иное предназначение )
old = ...; можно выкинуть. __restore_...; заменить на __enable_interrupt();
У вас случаем нет проекта для протеуса? Лень рисовать, чтобы понять что горит, а что нет
Туплю, картину не посмотрел, выложите проект плз.
Pika4u писал(а):Теперь у меня возникла ещё проблема-в ниже перечисленном коде, если сделать задержку(не которая опрос кнопок, а между управлением состояния портов) меньше 170000 тактов(частота тактирования МК составляет 4 МГц), то появляется баг - если, например, в верхнем ряду зажжен 1 светодиод, а в нижнем-2, то иногда на секунду-две погасает то верхний(1) светодиод, то нижний (2). И так при любой комбинации, кроме верхний-1, нижний-1.
А как по вашему мнению должно быть? мы же не знаем какая логика задумана в вашем мозге