А почему Вы "обрезаете" адрес (& 0x000F) только последнего элемента в массива с[3]?
Ограничте каждый:
static const char* hex_digits="0123456789ABCDEF";
unsigned int b = 0xABCD;
unsigned char c[5];
c[4] ='\0';
c[0] = hex_digits[(b >> 12) & 0xF];
c[1] = hex_digits[(b >> 8) & 0xF];
c[2 ...
Найдено 68 результатов
- Вс сен 30, 2012 11:42:10
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
- Пт фев 03, 2012 20:33:38
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
Re: Вопросы по С/С++ (СИ)
Доброе время суток.
Ребята, подскажите, с какой целью глобальные переменные определяют как static, что это дает и в каких случаях так надо делать, а в каких нет?
P.S. может уже такой вопрос поднимался, случай че не серчайте. Спасибо.
Ребята, подскажите, с какой целью глобальные переменные определяют как static, что это дает и в каких случаях так надо делать, а в каких нет?
P.S. может уже такой вопрос поднимался, случай че не серчайте. Спасибо.
- Вс дек 25, 2011 12:42:03
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
Re: Вопросы по С/С++ (СИ)
_BV(PB1) аналогично (1<<PB1) аналогично (1<<1) аналогично 0x02 аналогично 0b00000010
- Сб дек 03, 2011 20:06:33
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2522300
Re: CodeVision AVR в вопросах и ответах
Смотрю я на Ваш массив для семисегментника и не пойму. Почему при 7ми сегментах в индикаторе Вы используете все восемь битов в байте? По логике: первые 7 бит содержат форму цифры, а оставшийся 8й бит идет под точку. Просто в нужный момент при отображении к выводимому коду присоединяете бит точки ...
- Пн ноя 14, 2011 11:19:40
- Форум: Умные мысли
- Тема: Часы на газоразрядных индикаторах
- Ответы: 48974
- Просмотры: 746439
Re: Часы на газоразрядных индикаторах
А не в кварце дело. Я делал на меге8 с одной лампой, так часы за сутки на 20 мин уплывали. Вся хитрость в наводках и паразитных связях по питанию. Удалось вылечить полным экранированием меги и кварца ну и конденсаторы понавесить надо. И еще, ни в коем случае, нельзя экранировать сам накачивающий ...
- Сб ноя 12, 2011 16:28:39
- Форум: Умные мысли
- Тема: Часы на газоразрядных индикаторах
- Ответы: 48974
- Просмотры: 746439
Re: Часы на газоразрядных индикаторах
Я думал, что газопоглотитель как гетр меняет цвет. Просто лампы имеют трещины в стекле вокруг выводов, ну и я допускаю их неработоспособность. Вобщем понял, показательна только проверка подключением, всем спасибо.
- Сб ноя 12, 2011 14:34:56
- Форум: Умные мысли
- Тема: Часы на газоразрядных индикаторах
- Ответы: 48974
- Просмотры: 746439
Re: Часы на газоразрядных индикаторах
День добрый.
Подскажите, если ИН-12 хватила воздуха, таблетка стает фиолетового цвета (из серого)? Ато пробно подключить некак.
Подскажите, если ИН-12 хватила воздуха, таблетка стает фиолетового цвета (из серого)? Ато пробно подключить некак.
- Вс окт 30, 2011 13:13:46
- Форум: AVR
- Тема: AVR studio в вопросах и ответах
- Ответы: 3188
- Просмотры: 1262600
Re: AVR studio 4 в вопросах и ответах
Ну вот чего не знаю так это ассемблера
. Можно упростить заменив функцию дефайном (см. пост выше), код будет пару десятков байт если у Вас насколько критично с местом в памяти. Интереса ради сравните в CVA размер кода с библиотекой и с вычислениями без bcd.h.
- Вс окт 30, 2011 12:13:45
- Форум: AVR
- Тема: AVR studio в вопросах и ответах
- Ответы: 3188
- Просмотры: 1262600
Re: AVR studio 4 в вопросах и ответах
Можно простыми вычислениями. Когдато для себя писал библиотеку. Выглядит громоздко, зато работает без подключения объемистых библиотек.
#define transfer(data) ((((data&(1<<6))|(data&(1<<5))|(data&(1<<4)))*0x0A)>>4)+((data&(1<<3))|(data&(1<<2))|(data&(1<<1))|(data&0x01))
З.Ы. может кто сможет ...
#define transfer(data) ((((data&(1<<6))|(data&(1<<5))|(data&(1<<4)))*0x0A)>>4)+((data&(1<<3))|(data&(1<<2))|(data&(1<<1))|(data&0x01))
З.Ы. может кто сможет ...
- Чт окт 27, 2011 18:27:52
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
Re: Вопросы по С/С++ (СИ)
Безвредный - это да, но не такой уж и безполезный.
Если отлаживать в протеусе (как многие и делают) частенько контроллер либо виснет наглухо, либо не выполняет вобще ничего. Если вкинуть хоть asm("nop") работает без проблем. И такое не только у меня.
Если отлаживать в протеусе (как многие и делают) частенько контроллер либо виснет наглухо, либо не выполняет вобще ничего. Если вкинуть хоть asm("nop") работает без проблем. И такое не только у меня.
- Чт окт 27, 2011 17:36:44
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
Re: Вопросы по С/С++ (СИ)
Код то конечно простой, но я бы не советовал пользоваться всеми упрощениями CVA (PINB.0 и др.), потом тяжело отвыкнуть, тем более так в лоб PORTB.2= PINB.4. И я уже советовал форумчанам в основной цикл ставить ну хоть небольшую задержку, если нужно выполнить всего одно простое действие.
Попробуйте ...
Попробуйте ...
- Ср окт 26, 2011 21:43:45
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
Re: Вопросы по С/С++ (СИ)
Ну PINB1 и правда выход, пардон недоглядел.
- Ср окт 26, 2011 20:47:34
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
Re: Вопросы по С/С++ (СИ)
Не путайте человека. PINB0 и PINB1 сконфигурированы как входы и со слов автора на PB0 пин приходит сигнал с некоего датчика.
- Ср окт 26, 2011 15:06:47
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
Re: Вопросы по С/С++ (СИ)
В основной цикл я бы вкинул хоть небольшую задержку, ну состояние PB0 по другому проверял if(PINB&1) { } else _delay_us(...) и перепроверьте ошибки на уровне железа.
- Ср окт 26, 2011 14:46:00
- Форум: Разные вопросы по МК
- Тема: Вопросы по С/С++ (СИ)
- Ответы: 7703
- Просмотры: 1426288
Re: Вопросы по С/С++ (СИ)
А Вы и у себя в коде написали _delay_us(...)?
- Пн окт 24, 2011 19:16:47
- Форум: Умные мысли
- Тема: Часы на газоразрядных индикаторах
- Ответы: 48974
- Просмотры: 746439
Re: Часы на газоразрядных индикаторах
Эксперементировал с контроллером увеличивая частоту развертки цифр. Ничего хорошего с этого не выходит: после 400Гц падает яркость и возрастает ток потребления индикаторов. Тем более управлять нормально яркостью свечения не выходит (яркостные переходы идут скачкообразно.) По личному опыту самое оно ...
- Чт сен 01, 2011 15:32:39
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1294936
Re: WinAvr в вопросах и ответах
В этой теме уже поднимался такой вопрос
считывать с помощью
Код: Выделить всё
#include <avr/pgmspace.h>
int ks PROGMEM=6000;Код: Выделить всё
pgm_read_byte(addr);
pgm_read_word(addr);
pgm_read_dword(addr);
pgm_read_float(addr);- Чт сен 01, 2011 12:03:41
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2522300
Re: CodeVision AVR в вопросах и ответах
А что Вам мешает использовать int64_t из библиотеки inttypes?
- Чт авг 18, 2011 17:09:40
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2522300
Re: CodeVision AVR в вопросах и ответах
Если мне не изменяет память, у протеуса rom коды у всех датчиков одинаковые, соответственно у Вас ничего не работает. Собирите в железе и тогда уж проверяйте.
- Чт июн 09, 2011 17:42:40
- Форум: Умные мысли
- Тема: Часы на газоразрядных индикаторах
- Ответы: 48974
- Просмотры: 746439
Re: Часы на газоразрядных индикаторах
Еще раз спасибо всем за советы.
Нашел несколько новых ИН-3, подходят идеально.
Нашел несколько новых ИН-3, подходят идеально.