smac
Участник-
Постов
147 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о smac
-
Звание
Частый гость
- День рождения 26.05.1982
Контакты
-
Сайт
Array
Информация
-
Город
Array
-
RS232->RS485
smac ответил skyled тема в В помощь начинающему
1. Эл. сеть внутри помещения в котором вы работаете 3-х проводная (с протянутым проводо заземления)? 2. Как уже спрашивали, осциллограф с заземляющим контактом? 3. Сколько приборов с заземляющими контактами включено в тот же сегмент эл. сети что и осциллограф? -
Обратитте внимание на раздел SS Pin Functionality дтаташита. SS_A должен быть либо сконфигурирован как выход, либо подтянут к + питания. Если на выводе SS, сконфигурированном как вход появляется 0, то модуль SPI воспринимает это как попытку передачи данных другим мастером. Попробуйте в программе принудительно назначить SS_A выходом, несмотря на то, что он используется как генератор PWM. Однако будет ли результат я вам сказать не могу.
-
Период в об./мин.
smac ответил sigmaN тема в В помощь начинающему
Целочисленное деление беззнаковых величин - не такая уж сложная задача, посмотрите на атмеловском сайте, у них даже аппноты были какие-то с исходниками на асме. Кстати в этом случае я бы порекомендовал ассемблерный модуль деления специально для ваших оборотов сделать. -
Период в об./мин.
smac ответил sigmaN тема в В помощь начинающему
В данном случае устроит ли инерционность, да и точность на низких оборотах будет низкой (точнее при фиксированной длительности окна равной 1 секунде погрешность будет 30 об/мин). При низкочастотном сигнале имеет смысл все-таки измерять период. Но за это придется платить делением. В любом случае выбирать Вам, sigmaN. -
поменять местами биты в байте
smac ответил Vny4ek тема в Программирование
Да фиг с ними с учебниками, Вы тему-то свою с начала до конца внимательно перечитайте. Как перечитаете выберите один из предложенных вариантов, перечитайте его еще раз, попытайтесь понять, затем задайте вопросы, если что-то останется непонятным. -
Apnote AVR242 на Си
smac ответил foxit тема в Программирование
Мы не местные, мы приезжие :). Чувствую схлопочу предупреждение, но не могу сдержаться. -
Apnote AVR242 на Си
smac ответил foxit тема в Программирование
Дык с таким подходом помощь возможна только за деньги (50 баксов). -
sprintf
smac ответил SergeyVas тема в Программирование
При компиляции проекта эклипс наверняка вызывает make all <filename> , а цели all в <filename> (по-умолчанию Makefile) нету. Разберитесь с проектом эклипса - мейкфайл у Вас подключен извне или эклипсом генерируется? PS Наверняка с терминами у меня как всегда беда, поправьте кому не лень пожалуйста. -
sprintf
smac ответил SergeyVas тема в Программирование
Я так понимаю, в Вашем случае исходник в newlib нужно искать, правда геморное это дело с теми исходниками разбираться (имхо конечно, наверняка есть и более геморные исходники). Если будете разбираться, пользуйтесь возможностью препроцессирования исходников (имеется ввиду GCC-шный ключ -E ). -
Так Вы документацию на WinAVR (точнее на avr-libc) почитайте, там написано многое, вот ссылка на всякий случай bootloaer
-
Весь код не смотрел, но по-моему Вы ADCH не вычитываете, что нужно делать обязательно, иначе регистры ADCH:ADCL не обновятся. Подробности в даташите.
-
Вопрос не совсем в тему, но в принципе про PCINT. Чем тактируется упомянутая схема захвата при уходе контроллера в Power Down, что-то в даташите не могу найти нужной информации, может быть кто знает?
-
Быстро считать данные с АЦП
smac ответил nikolas_osu тема в AVR
Модель АЦП видимо секретная, но по коду видно что с последовательным интерфейсом (похоже I2C), поэтому вариант следующий - попробовать использовать периферийный модуль TWI микроконтроллера, который сделает всю грязную работу за Вас. Если это не подходит - написать функцию получения отчета АЦП на ассемблере и не париться. -
Что-то я тоже ничего криминального не вижу. Попробуйте все-же оформить обработчик АЦП как ISR(ADC_vect){...} и еще попробуйте сделать следующее в майне сначала настройте уарт, затем настройте АЦП, затем запустите АЦП и только потом глобально разрешите прерывания, т. е. sei() должна стоять непосредственно перед входом в бесконечный цикл. Опишите поподробней в чем выражаются "падения".
-
Компилировать Ваш код и смотреть асм. листинг желания нет, уж больно длинный. рекомендации: а) написать действительно минимальный код - если проблема в АЦП, оставить только код относящийся к УАРТУ И АЦП б) оформить обработчик прерывания от АЦП аналогично остальным, при этом не извращаться при чтении АЦП, а сделать так ISR(ADC_vect){ unsigned char sample = ADCW; /*Я поначалу не стал заводить лишнюю переменную и написал просто ADCW; но скомпилив увидел, что там в обработчике прерывания какой-то rcall нарисовался, ну его нафиг*/ } в) на мой взгляд выражения типа outb(TCCR1B, (inb(TCCR1B) & ~0x07) | 0x02) не добавляют читаемости кода, наверное лучше так TCCR1B = (TCCR1B&0xf8)|(1<<CS11) Да, кстати, может это и новый стиль, но я чего-то не понимаю, зачем эти sbi() и outb() мне они глаз режут, по-моему обычным макаром TCNT0 = 0; код лучше выглядит. ЗЫ ~30000 это случайно не 32767?