Страница 227 из 421
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 08, 2012 13:58:38
hd44780
А мой проект у Вас компилится?
ЗЫ.
Судя по пути к файлу, он Вас то ли в каком-то временном файле, то ли в архиве ... Что за каталог Rar$...

?
Rar закрыли, каталог убился и всё.... А Вы оттуда ещё и компилить хотите.
Скопируйте файлы проекта в нормальный каталог на винте (типа C:\CvAvrTest) и работайте.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 08, 2012 15:32:19
mixon46
ваш скомпилировался. и мой тоже. мне бы еще на этом языке научиться писать программы. мне вообще не понятно ничего))
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 08, 2012 15:43:29
hd44780
mixon46 писал(а):мне бы еще на этом языке научиться писать программы. мне вообще не понятно ничего))
Почитайте какую-нибудь простую книжку по C. c++ не нужен

. Под авр писать на С++ - крайне неэффективно - памяти мало и прочие сложности.
Читайте основы языка - синтаксис, операторы, управляющие структуры (if, for, while ...). Они всегда и везде одинаковые хоть для какого проца ...
Файловые операции (типа fopen, fread ..., их Керниган-Ритчи любят

) смело пропускайте. Нету их здеся. Их будете учить, когда доживёте до работы с разно-всякими SD картами. Пока Вам до этого далеко.
Можете у меня в личку спрашивать, дабы здесь не оффтопить. Подскажу, помогу.
Могу также Ваш или мой код разжевать, объяснить, что там к чему ...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 08, 2012 21:50:58
vitalik_1984
ну создал файл. потом появилась кнопочка компиляции. ну выдает ошибку. а вообще походу ничего не понимаю
Вы видимо открыли в архиваторе файл test.c потом архиватор закрыли, папка удалилась.
Создайте новый файл проекта, дайте ему осмысленное имя и сохраните в своей папке.
Когда создадите, скопируйте из файла entitled.c в этот файл.
Можно подключить и этот, конечно, но переименовать нужно.Нажмите сохранить как в меню"файл"
выберите куда и под каким именем.
Далее заходим Project -configure
там нажмите add и выберите свои файл.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт ноя 09, 2012 00:53:10
palladin2010
Приветствую коты!
Есть такая проблема:
имеется
flash unsigned char date15[5][5]={
{0b00100000,0b01111110,0b00111110,0b00111110,0b00111110},
{0b11100000,0b11111110,0b11111110,0b11111110,0b11111110},
{0b11100000,0b11111110,0b11111110,0b11111110,0b11111110},
{0b11100000,0b11111110,0b11111110,0b11111110,0b11111110},
{0b11100000,0b11111110,0b11111110,0b11111110,0b11111110}
};
unsigned char mass[5][5]={
{0b00000000,0b00000000,0b00000000,0b00000000,0b00000000},
{0b00000000,0b00000000,0b00000000,0b00000000,0b00000000},
{0b00000000,0b00000000,0b00000000,0b00000000,0b00000000},
{0b00000000,0b00000000,0b00000000,0b00000000,0b00000000},
{0b00000000,0b00000000,0b00000000,0b00000000,0b00000000}
};
выдаёт ошибку на операцию memcpy(mass, date15, sizeof(mass));
есть ли способ обойти эту проблему без написания алгоритма вида
for (a = 0; a<5; a++)
{
for (i = 0; i < 5; i++)
{
mass[a] = date15[a];
}
}
просто массивов будет много и запись со строкой memcpy было бы удобнее всего...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт ноя 09, 2012 21:47:53
U235
Если данные, которые Вы хотите скопировать, находятся в памяти программ, используйте функцию memcpyf.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср ноя 28, 2012 12:42:46
Ckfdf
Приветствую! Пишу программку для терморегулятора на ATtyni2313, возникла проблема
Код: Выделить всё
int temper,temp;
unsigned char *text="000.0000"; //вывод температуры на диссплей
unsigned char *time="00:00:00"; //вывод на дисплей времени
unsigned char button; //переменная для опроса кнопок
unsigned char s,m,h; //переменная для формирования времени
signed char i,j;
При объявлении *text и *time одновременно компилится все нормально, никаких ошибок или предупреждений, но на дисплей выводится корректно только переменная объявленная первой(в данном случае text), и сама схема работает по неизвестным мне законам. Если одну из них исключить, то все работает. Не могу понять - в чем ошибка?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср ноя 28, 2012 16:45:39
BCluster
Какой компилятор? Вывод на экран тож покажите...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 07:20:12
Ckfdf
Вот весь проект с исходником и протеусом. Вывод time идет в ПП прерывания, коментариев нет( я как-то не очень дружу с ними). Извиняйте!
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 07:52:07
U235
Делать вывод в дисплей в прерывании - плохая идея. Вот представьте, что программа в основном цикле выводит температуру - дергает управляющими сигналами дисплея, выставляет данные. И тут приходит прерывание, которое пытается сделать то же самое. И дисплей принимает винигрет.
В прерывании надо установить программный флаг, переменную которая будет показывать, что время обновилось. А в основном цикле проверять эту переменную. Если она установлена - вывести новое время и сбросить переменную.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 08:02:33
Ckfdf
Я пробовал! Но как только объявляю unsigned char *time, начинаются чудеса! В протеусе программа не хочет работать! Пришлось, пока, выводить время посимвольно!
Вообще я только начал атмелы изучать, до этого пики программировал.
И еще вопрос - для отладки программы нужен AVRStudio или что-нибудь другое подойдет! Проблема в том, что весит достаточно много, а я занимаюсь этим на работе, в свободное время! За большой трафик пятую точку порвать могут!

Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 09:35:39
Goodefine
Ckfdf писал(а):
И еще вопрос - для отладки программы нужен AVRStudio или что-нибудь другое подойдет...
Отладчик в студии глючный и убогий. А что, в протеусе отлаживаться никак? Или не умеете просто?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 09:59:02
Ckfdf
Если честно, то просто не умею!

Да и забыл, что можно и там отлаживать. Попробую погонять. Спасибо за направление!
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 11:39:36
Ckfdf
Большое спасибо Goodefine, разобрался с отладкой в протеусе, настроил таймер.
Но все равно с *text и *time проблема осталась(пока ее обошел, но разобраться хочется), при том поэксперементировал, и выяснил интересную вещь - если не проводить вычислений типа time[0]=(h/10)%10+48, то проблемы нет, но в этом случае выводится не время, а нули, а если произвести вычисления, то абра кадабра получается!
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 11:59:51
andrey_artemov
Строка символов в массиве должна заканчиваться нулём.
Я думаю у тебя этот ноль забивается результатом вычисления. Нужно просто округлить до нужного количества разрядов...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 14:18:07
Ckfdf
Все решилось неожиданно, просто инициализацию *time провел на несколько строк ниже и все заработало. Думаю проблема была в том, что сперва надо было инициализировать переменные s,m,h.
Теперь другой вопрос - подскажите, есть ли команда для смены состояния порта при совпадении 2-х переменных, без опроса состояния порта?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 14:56:29
Goodefine
...есть ли команда для смены состояния порта при совпадении 2-х переменных, без опроса состояния порта?
А зачем читать порт чтоб изменить состояние? Делаете проверку на равенство, хоть на фазу луны и меняете
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 15:00:26
ibiza11
Goodefine писал(а):А зачем читать порт чтоб изменить состояние?
Видимо имелось в виду изменение на противоположное значение.
Если AVR, то в некоторых моделях(смотреть в даташите) запись в порт PINx приводит к инверсии.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 15:01:52
Gudd-Head
ibiza11 писал(а):запись в порт PINx приводит к инверсии.
Запись лог. "1".
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт ноя 29, 2012 16:28:12
Goodefine
ibiza11 писал(а):
Если AVR, то в некоторых моделях(смотреть в даташите) запись в порт PINx приводит к инверсии.
И как это относится к вопросу:
есть ли команда для смены состояния порта при совпадении 2-х переменных, без опроса состояния порта?