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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

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

Сообщение sachok »

FreshMan писал(а): данной проги

Это Вы про CVAVR? Если да то, можно там есть встроенный прошивальщик.
Я не Сашок!!!
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

да про нее :))
дело в том что я сам делал проэкт, компилил и прошивал МК...................., а тут у меня есть уже готовый hex. вот только как прошить МК в данном случае ненаю :dont_know:
Tell Me The Truth
John-RADIST
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт дек 15, 2011 19:04:24

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

Сообщение John-RADIST »

Все форумчанам доброго времени суток!!! Подскажите пожалуйста:
Вот сдесь фрагмент моего исходника:

interrupt [ADC_INT] void adc_isr(void){

result=ADCW*5-ADCW/10; //умножаем чтобы получить мВ и немного учитываем погрешности
sprintf(lcd_buffer,"Vlazhnost=%4umV %s\n",result,stroka);
lcd_clear(); // очищаем жки
lcd_puts(lcd_buffer); // теперь выводим в него
delay_ms(1);
ADCSRA=0b11011111;
}
В этой строке sprintf(lcd_buffer,"Vlazhnost=%4umV %s\n",result,stroka); помимо всего прочего вывожу %s\n - строковая переменная, ее я описываю так - char stroka[6]="Hello" к примеру;
Далее в основной функции у меня стоит switch.
Подскажите пожалуйста, как выводить %s\n строковую переменную не только "Hello" (разные слова) через switch, каждый раз при нажатии на кнопку.

Заранее огромное спасибо!!!!!
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

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

Сообщение Мастер Ломастер »

John-RADIST писал(а):Все форумчанам доброго времени суток!!! Подскажите пожалуйста:
Вот сдесь фрагмент моего исходника:

interrupt [ADC_INT] void adc_isr(void){

result=ADCW*5-ADCW/10; //умножаем чтобы получить мВ и немного учитываем погрешности
sprintf(lcd_buffer,"Vlazhnost=%4umV %s\n",result,stroka);
lcd_clear(); // очищаем жки
lcd_puts(lcd_buffer); // теперь выводим в него
delay_ms(1);
ADCSRA=0b11011111;
}
В этой строке sprintf(lcd_buffer,"Vlazhnost=%4umV %s\n",result,stroka); помимо всего прочего вывожу %s\n - строковая переменная, ее я описываю так - char stroka[6]="Hello" к примеру;
Далее в основной функции у меня стоит switch.
Подскажите пожалуйста, как выводить %s\n строковую переменную не только "Hello" (разные слова) через switch, каждый раз при нажатии на кнопку.

Заранее огромное спасибо!!!!!
я же вроде как отвечал?!

P.S. и снва та же лабуда: в обработчике прерывания куча функций, в том числе медленного вывода на дисплей... сколько ж можно об этом говрить?! :o
битва с дураками проиграна, победители торжествуют. слава победителям!
John-RADIST
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт дек 15, 2011 19:04:24

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

Сообщение John-RADIST »

Раскажи пожалуйста по подробнее, что значит функция медленного вывода на дисплей. Просто мне не очень понятно. Обяъсни пожалуйста по подробнее если не трудно.

set_measure_parameter(current);
result = measure();
output_to_lcd(result, environments[current]);
В Протеусе при симуляции показания "мерцают" с чем это связанно????
Заранее благодарен!!!!!!!!!!!
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

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

Сообщение Мастер Ломастер »

изредка пользуйтесь поиском по форуму и читайте другие аналогичные темы, надоедает, если честно, одно и то же повторять постоянно.

смотрите здесь, возможно что-то просветлится: http://www.radiokot.ru/forum/viewtopic. ... b#p1124152
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

прочитал уже не один сайт но так и не могу понять каким макаром настраивать таймер чтобы он срабатывал через 1с или через 1мин :(
может кто толково может обяснить............, поделитесь знаниями ПЛИЗ
Tell Me The Truth
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

John-RADIST писал(а):Все форумчанам доброго времени суток!!! Подскажите пожалуйста:
Вот сдесь фрагмент моего исходника:
Спойлерinterrupt [ADC_INT] void adc_isr(void){

result=ADCW*5-ADCW/10; //умножаем чтобы получить мВ и немного учитываем погрешности
sprintf(lcd_buffer,"Vlazhnost=%4umV %s\n",result,stroka);
lcd_clear(); // очищаем жки
lcd_puts(lcd_buffer); // теперь выводим в него
delay_ms(1);
ADCSRA=0b11011111;
}
спойлеры работают
John-RADIST писал(а):В этой строке sprintf(lcd_buffer,"Vlazhnost=%4umV %s\n",result,stroka); помимо всего прочего вывожу %s\n - строковая переменная, ее я описываю так - char stroka[6]="Hello" к примеру;
Далее в основной функции у меня стоит switch.
Подскажите пожалуйста, как выводить %s\n строковую переменную не только "Hello" (разные слова) через switch, каждый раз при нажатии на кнопку.

Чтобы выводить разные строки создать массив stroka[][] {"Hello","Display","Massiv"}
потом просто обращаться к нему stroka[1] (Hello)
или stroka[i]

FreshMan это ведь просто.
Допустим нужно секунду
Считаем: частота 8000000 оборотов в секунду.
в таймере t0 и t2 8 бит значит всего 256 значений.
делим 8000000 /256значений = 31372.549019607843137254901960784 прерываний таймера в секунду
примерно 31.3725490/мс 0.031875 мс между прерываниями
у таймера 0 есть предделитель до 1024

31372.549019607843137254901960784/1024= 30.637254901960784313725490196078 тактов и 32.64 мс между прерываниями
ровно не получается в прерывании таймера добавляем к временной переменной 1,когда станет больше 30 это одна секунда-выставляем флаг делаем то, что нужно делать через секунду.
32.64*30=979.2 миллисекунд.Почти попали в предел

А для большей точности нужно применить алгоритм брезенхема. Если интересно почитайте в нете
В поисках истины человек развивается.
John-RADIST
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт дек 15, 2011 19:04:24

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

Сообщение John-RADIST »

Большое спасибо за помощь!!!!!!!!!!!!!!!!!
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

vitalik_1984 писал(а):делим 8000000 /256значений = 31372.549019607843137254901960784 прерываний таймера в секунду

может это частота на входе таймера ?
Tell Me The Truth
John-RADIST
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт дек 15, 2011 19:04:24

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

Сообщение John-RADIST »

vitalik_1984 писал(а):Чтобы выводить разные строки создать массив stroka[][] {"Hello","Display","Massiv"}потом просто обращаться к нему stroka[1] (Hello)или stroka[i]

Подскажите пожалуйста, char stroka[6]="Hello"; например в квадратных скобках размер строки. Этоя понял, а как описывать здесь stroka[][] {"Hello","Display","Massiv"}. Пробовал по разному компилятор ругается.
Спасибо!!!
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

John-RADIST писал(а):
vitalik_1984 писал(а):Чтобы выводить разные строки создать массив stroka[][] {"Hello","Display","Massiv"}потом просто обращаться к нему stroka[1] (Hello)или stroka[i]

Подскажите пожалуйста, char stroka[6]="Hello"; например в квадратных скобках размер строки. Этоя понял, а как описывать здесь stroka[][] {"Hello","Display","Massiv"}. Пробовал по разному компилятор ругается.
Спасибо!!!


немного забыл как обращаться с массивами вот для CVAVR:
flash uchar stroka[3][15] ={{"Hello"},{"Display"},{"Massiv"}};
________________| |____число букв в самой длинной строке
________________|
________________|___число элементов строкового массива


FreshMan после равно это именно частота прерываний таймера.
Смотрите рисунок 15-2 в даташите,чтоб понять как работает делитель таймера
В поисках истины человек развивается.
John-RADIST
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт дек 15, 2011 19:04:24

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

Сообщение John-RADIST »

flash uchar stroka[3][15] = {{"Hello"},{"Display"},{"Massiv"}};
Извиняюсь за назойливость но компилятор постоянно выдает ошибку missing"}". Все проверил вроде несколько раз. С чем это может быть связанно???
Спасибо!!!
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

vitalik_1984, дуриш ты меня :wink:
prescaler - это предварительный делитель частоты :tea:
Tell Me The Truth
Аватара пользователя
леня
Это не хвост, это антенна
Сообщения: 1399
Зарегистрирован: Пн сен 13, 2010 17:34:06
Откуда: калуга
Контактная информация:

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

Сообщение леня »

собрал программатор , пыточную платку с тинькой
и
чёто ничего не происходит
в cvavr
написал PORTB=1 (припаял к нему диодик)
нажал прошить
на программаторе диодик горел когда прошился потух
ошибок не выдавал
но диодик на микре не горит !!!!!!!!!!!!!!!!!!!!!!!!!

чё делать ?????

http://cs10905.vk.com/u120883879/128547 ... 177069.jpg
ВРУБАЙ !!!
И будь что будет !!!
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

какой программатор ?
схема
Tell Me The Truth
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Программу бы посмотреть. И скажите среду, в которой писано.
Docendo discimus
Аватара пользователя
леня
Это не хвост, это антенна
Сообщения: 1399
Зарегистрирован: Пн сен 13, 2010 17:34:06
Откуда: калуга
Контактная информация:

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

Сообщение леня »

ВРУБАЙ !!!
И будь что будет !!!
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Еще раз: программу бы посмотреть. И схема имеется ввиду не программатора, а вами собранная.
Docendo discimus
DotZZ
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вт ноя 30, 2010 13:45:01
Откуда: Донецк
Контактная информация:

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

Сообщение DotZZ »

Помогите пожалуйста. Пытаюсь вынести часть кода в отдельный библиотечный файл, когда делаю билд, программа выдает ошибку "Can't open file... " и дальше название библиотечного файла с расширением *.о
В чем может быть проблема?
Вложения
error.png
(28.49 КБ) 347 скачиваний
Ответить

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