Страница 177 из 421

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

Добавлено: Чт янв 26, 2012 19:07:11
sachok
FreshMan писал(а): данной проги
Это Вы про CVAVR? Если да то, можно там есть встроенный прошивальщик.

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

Добавлено: Чт янв 26, 2012 19:09:56
FreshMan
да про нее :))
дело в том что я сам делал проэкт, компилил и прошивал МК...................., а тут у меня есть уже готовый hex. вот только как прошить МК в данном случае ненаю :dont_know:

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

Добавлено: Чт янв 26, 2012 19:32:59
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, каждый раз при нажатии на кнопку.

Заранее огромное спасибо!!!!!

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

Добавлено: Чт янв 26, 2012 19:39:13
Мастер Ломастер
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

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

Добавлено: Чт янв 26, 2012 19:50:07
John-RADIST
Раскажи пожалуйста по подробнее, что значит функция медленного вывода на дисплей. Просто мне не очень понятно. Обяъсни пожалуйста по подробнее если не трудно.

set_measure_parameter(current);
result = measure();
output_to_lcd(result, environments[current]);
В Протеусе при симуляции показания "мерцают" с чем это связанно????
Заранее благодарен!!!!!!!!!!!

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

Добавлено: Чт янв 26, 2012 20:58:50
Мастер Ломастер
изредка пользуйтесь поиском по форуму и читайте другие аналогичные темы, надоедает, если честно, одно и то же повторять постоянно.

смотрите здесь, возможно что-то просветлится: http://www.radiokot.ru/forum/viewtopic. ... b#p1124152

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

Добавлено: Чт янв 26, 2012 21:17:14
FreshMan
прочитал уже не один сайт но так и не могу понять каким макаром настраивать таймер чтобы он срабатывал через 1с или через 1мин :(
может кто толково может обяснить............, поделитесь знаниями ПЛИЗ

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

Добавлено: Чт янв 26, 2012 21:51:29
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

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 миллисекунд.Почти попали в предел

А для большей точности нужно применить алгоритм брезенхема. Если интересно почитайте в нете

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

Добавлено: Пт янв 27, 2012 00:41:04
John-RADIST
Большое спасибо за помощь!!!!!!!!!!!!!!!!!

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

Добавлено: Пт янв 27, 2012 16:10:24
FreshMan
vitalik_1984 писал(а):делим 8000000 /256значений = 31372.549019607843137254901960784 прерываний таймера в секунду
может это частота на входе таймера ?

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

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

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

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

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

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


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


FreshMan после равно это именно частота прерываний таймера.
Смотрите рисунок 15-2 в даташите,чтоб понять как работает делитель таймера

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

Добавлено: Пт янв 27, 2012 19:21:58
John-RADIST
flash uchar stroka[3][15] = {{"Hello"},{"Display"},{"Massiv"}};
Извиняюсь за назойливость но компилятор постоянно выдает ошибку missing"}". Все проверил вроде несколько раз. С чем это может быть связанно???
Спасибо!!!

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

Добавлено: Пт янв 27, 2012 19:30:49
FreshMan
vitalik_1984, дуриш ты меня :wink:
prescaler - это предварительный делитель частоты :tea:

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

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

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

http://cs10905.vk.com/u120883879/128547 ... 177069.jpg

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

Добавлено: Пт янв 27, 2012 20:45:49
FreshMan
какой программатор ?
схема

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

Добавлено: Пт янв 27, 2012 20:47:49
pyzhman
Программу бы посмотреть. И скажите среду, в которой писано.

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

Добавлено: Пт янв 27, 2012 21:46:06
леня

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

Добавлено: Пт янв 27, 2012 21:54:28
pyzhman
Еще раз: программу бы посмотреть. И схема имеется ввиду не программатора, а вами собранная.

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

Добавлено: Пт янв 27, 2012 22:27:04
DotZZ
Помогите пожалуйста. Пытаюсь вынести часть кода в отдельный библиотечный файл, когда делаю билд, программа выдает ошибку "Can't open file... " и дальше название библиотечного файла с расширением *.о
В чем может быть проблема?