CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
oschpareny
Родился
Сообщения: 5
Зарегистрирован: Сб окт 04, 2014 22:03:49

Re: CodeVision AVR в вопросах и ответах

Сообщение oschpareny »

Доброго времени суток. Хочу спросить совета, меня интересует прошивка мк attiny 45. Вот ссылка того что я собираюсь собрать http://radio-hobby.org/modules/news/art ... oryid=1362
AVRы никогда не прошивал, буду это делать через LPT с помощью CodevisionAVR. Вопрос надо ли ставить какие нибудь галочки где фьюзы или оставлять все по умолчанию и все будет работать???
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

Re: CodeVision AVR в вопросах и ответах

Сообщение sirha »

Подскажите как правильно настроить ацп attiny 13,чтобы зажигался светодиод при подаче напряжения на ацп

#include <tiny13.h>

interrupt [ADC_INT] void adc_isr(void)
{
PORTB.3=1;
ADCSRA|=0x40;

}

void main (void)
{
PORTB=0x00;
DDRB=0x08; //ПОРТ 3 НА ВЫХОД
ADCSRA=0x8F;// 10001111 - ДЕЛИТЕЛЬ 128 + ПРЕРЫВАНИЯ АЦП ВКЛЮЧЕНЫ
ADMUX=0x01; //ADC 1 - ПОРТ 2 НА ВХОД АЦП
}

while(1);

}


не работает(((
Последний раз редактировалось sirha Вс окт 19, 2014 10:36:16, всего редактировалось 3 раза.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

ghostbuster
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Чт сен 22, 2011 11:50:03

Re: CodeVision AVR в вопросах и ответах

Сообщение ghostbuster »

Друзья, такой вопрос: могу ли я повторно запускать codewizardavr в процессе редактирования кода, для внесения изменений через мастер в этот код. Допустим мне нужно поменять состояние портов с выхода на вход, активировать прерывания и т.п. с помощью мастера, но не сгенерировав абсолютно новый код, а внести только необходимые изменения в ранее написанный?
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

Re: CodeVision AVR в вопросах и ответах

Сообщение eduardo »

Откройте папку в которой сохранены файлы ,открываете проект (prj) с кодом и вносите там изменения сколь угодно и компилируйте.
Хотя,если честно,я редко использую визард. Как нагородит там,сам чёрт ногу сломит!!!!!.....
Последний раз редактировалось eduardo Вс окт 26, 2014 20:10:58, всего редактировалось 1 раз.
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

Re: CodeVision AVR в вопросах и ответах

Сообщение eduardo »

У меня такая беда: пишу прогу для фм радио(ТЕА5767).Для настройки приёмника нужно отправить в шину числа с 10 769 для 88.0 МГц по
13211 для 108 МГц. Числа получились в результате вычислений из формулы в ДШ:
4*(88*1000000+225000)/32768=10 769; 4*(108*1000000+225000)32768=13211.

Для того чтобы отобразить частоту,например 88МГц, на ЛСД нужно преобразовать число 10769 следуя из вышеуказанной формулы в обратном
порядке(не знаю как это в математике называется):
88=(10769*32768+225000)/4/1000000. На калькуляторе всё получается,а на Си результат почему-то=0?
код:

unsigned int data=10769; // для отправки в модуль ТЕА 5767
unsigned int data_lcd; // для вывода на лсд

void main(void)
{
data_lcd=(data*32768+225000)/4/1000000; // здесь результат=0

data_lcd=(10769*32768+225000)/4/1000000; // здесь результат=88
}

Почему так,не пойму... :dont_know: Может кто-нибудь знает,в чём проблема,подскажите пожалста... Спасибо.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение WiseLord »

Код: Выделить всё

unsigned int data=10769;
data*32768

Если int умножать на int (знак пока опустим) - получится тоже int.

А int - это число в диапазоне -32768..+32787 (unsigned - 0..65536). Естественно, что у Вас при умножении получается какая-то чушь.
Используйте тот же long, например (data*32768UL).

Вот, например, как у меня сделано (частота хранится в виде uint16_t, т.е. диапазон частот FM - в виде чисел 8750..10800).
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

Re: CodeVision AVR в вопросах и ответах

Сообщение eduardo »

Т.е. обе переменные объявлять как long ?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение WiseLord »

Хотя бы одну. Или просто первым действием умножать на 32768UL, дав понять компилятору, что и все остальные операнды при действиях с ними надо приводить к unsigned long.

P.S. В принципе, путём нехитрых математических преобразований можно формулу упростить до варианта, вычисления в котором укладываются в диапазон unsigned int (уравнение прямой):

F (MHz) = (data - 10769) * (108 - 88) / (13211 - 10769) + 88
Аватара пользователя
kimi112
Встал на лапы
Сообщения: 122
Зарегистрирован: Ср окт 30, 2013 16:05:54
Откуда: ХМАО. Когалым

Re: CodeVision AVR в вопросах и ответах

Сообщение kimi112 »

Доброго времени суток уважаемые коты, если кого не затруднит гляньте код что не так, суть вопроса вот в чем, изначальна данный код был написан для Atmega8 и с ней он работал и в Протеус и в железе все хорошо, но радии экономии решил его переделать на ATTINY2313, а то на Меге остается много пустых ног, нецелесообразно получается. Вообще как смог переписал под ATTINY2313, вреде все порты поправил компиляция проходит без ошибок и варнингов, но при симуляции ни чего не происходит, даже динамическая индикация не работает.
Вложения
код.txt
(3.38 КБ) 163 скачивания
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение WiseLord »

Я не верю, что этот код может компилиться без ошибок. Потому что ошибки синтаксиса видны невооружённым глазом - те же шестнадцатеричные константы вида 0?00 вместо 0x00, или пустые #include в начале.
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Pink-Pank »

WiseLord, Вы что не видите? Написано же, КОД! )) А если код - то он не может не работать! :)))
P.S. Нас тут, по-моему, какие-то студенты на лохов развести пытаются... :tea:
Fucking static initialization order fiasco
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

kimi112, у Вас же отладчик в руках (Протеус), погоняйте, посмотрите что не работает.
Программа Ваша, Вы - хозяин кода, и только Вам может быть понятно почему она не работает.
Аватара пользователя
kimi112
Встал на лапы
Сообщения: 122
Зарегистрирован: Ср окт 30, 2013 16:05:54
Откуда: ХМАО. Когалым

Re: CodeVision AVR в вопросах и ответах

Сообщение kimi112 »

WiseLord, только сейчас заметил, данные ошибки получились при сохранении листинга из CodeVision в блокноте.
Pink-Pank, извините за терминологию, и ни кто здесь ни кого не разводит, это первые шаги в изучении МК.
Вечером выложу скомпилированный файл.
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: CodeVision AVR в вопросах и ответах

Сообщение ELcat »

Всем доброго времени суток!
Возник немного не стандартный вопрос.
Имеется микроконтроллер AVR (Tiny2313 или Mega8 пока не определился). Возможно ли посчитать период внешнего сигнала с точностью +/-1 тактовый импульс микроконтроллера? Как лучше это сделать, подав этот сигнал на вход INTn или ICPn, или Tn? Соответственно обрабатывать данный сигнал как прерывания, использовать для захвата значения таймера-счётчика или же подавать его на счётный вход счётчика? Сам сигнал находится в диапазоне 25-30МГц и подаётся на 14 разрядный счётчик с выходами по степеням двойки: 4-10, 12-14. То есть можно взять любой из кратных сигналов. Частоту микроконтроллера планируется стабилизировать кварцем 12МГц. Данные о частоте желательно получать не реже 1 раза в 1мс.

Подкиньте, пожалуйста, идею, как получить наивысшую точность измерения частоты 25-30МГц описанными аппаратными средствами. Необходимо получить разрешение не хуже 3-6кГц.
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Pink-Pank »

Способов тьма. Проще всего, наверное, и точнее - использовать аппаратную возможность таймера1 - схему захвата. Точность будет тем больше, чем больший коэффициент деления Вы выберете. Только сильно не переборщите - а то счетчик будет переполняться (хотя и это можно отработать в прерывании). но это при условии, что у вас длина импульса не "дрожит". Иначе придется делать несколько измерений и усреднять. Как вариант - можно еще считать количество импульсов в течение определенного времени - можно получить даже большую точность, мало зависящую от стабильности сигнала.
Fucking static initialization order fiasco
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: CodeVision AVR в вопросах и ответах

Сообщение ELcat »

Спасибо, сам тоже пришёл к такому выводу. Счётчик пусть переполняется, главное потом проверять и корректировать захваченные данные. :)
Аватара пользователя
kimi112
Встал на лапы
Сообщения: 122
Зарегистрирован: Ср окт 30, 2013 16:05:54
Откуда: ХМАО. Когалым

Re: CodeVision AVR в вопросах и ответах

Сообщение kimi112 »

ребята гляньте еще раз, что не так, парой постов ранее описана проблема
Вложения
счетчик.c
(5.3 КБ) 289 скачиваний
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

kimi112, гляньте пару постов ранее - Вам, если что, отвечали...
Похоже Pink-Pank был прав - нас пришли тут потроллить :)
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Pink-Pank »

Проект в Протеусе скиньте.

Код: Выделить всё

TIMSK = 0x40;
Для начала
По поводу отображения.. Протеус почему-то не хочет делать анимацию на такой частоте. При изменении частоты на

Код: Выделить всё

OCR1AH=0x13;
OCR1AL=0xE8;

Начинает бодро подмигивать индикатором.
Последний раз редактировалось Pink-Pank Вт окт 28, 2014 20:20:58, всего редактировалось 2 раза.
Fucking static initialization order fiasco
Ответить

Вернуться в «AVR»