я сделал небольшую программку, которая позволяет облегчить эту задачу: http://arv.radioliga.com/content/view/223/44/forastr писал(а):Здрасте!подскажите пожалуйста.Хочу массиву присвоить содерижимое файла.Как это сделать?(Например массив fontdata
, а в файле font.txt : 0x00,0x01,0x02)
CodeVision AVR в вопросах и ответах
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- hd44780
- Встал на лапы
- Сообщения: 132
- Зарегистрирован: Вт июл 14, 2009 09:27:37
- Откуда: Донецк, Украина
Re: CodeVision AVR в вопросах и ответах
forastr писал(а):Хочу массиву присвоить содерижимое файла.Как это сделать?(Например массив fontdata
, а в файле font.txt : 0x00,0x01,0x02)
А откуда ты файл в контроллере возьмешь
Напиши просто
char a[]={0x00,0x01,0x02};
Зачем тут файл?
Re: CodeVision AVR в вопросах и ответах
Доброго времени суток!
Господа, подскажите.. есть три переменные:
unsigned char h,l;
unsigned int x;
Как в старший байт переменной x положить значение переменной h, и соответственно в младший байт значение переменной l? И обратная задача, как прочитать старший байт из x в переменную h (можно ли это сделать без ассемблерных вставок или операций сдвига\деления)?
Господа, подскажите.. есть три переменные:
unsigned char h,l;
unsigned int x;
Как в старший байт переменной x положить значение переменной h, и соответственно в младший байт значение переменной l? И обратная задача, как прочитать старший байт из x в переменную h (можно ли это сделать без ассемблерных вставок или операций сдвига\деления)?
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: CodeVision AVR в вопросах и ответах
либо описав как структуру, либо простым сдвигом... ассемблер тут не нужен.paranoik писал(а):Как в старший байт переменной x положить значение переменной h, и соответственно в младший байт значение переменной l? И обратная задача, как прочитать старший байт из x в переменную h (можно ли это сделать без ассемблерных вставок или операций сдвига\деления)?
Re: CodeVision AVR в вопросах и ответах
Спасибо!
А то думал что есть что то вроде l=Low(x); но в справке ничего подобного не нашел
А то думал что есть что то вроде l=Low(x); но в справке ничего подобного не нашел
- hd44780
- Встал на лапы
- Сообщения: 132
- Зарегистрирован: Вт июл 14, 2009 09:27:37
- Откуда: Донецк, Украина
Re: CodeVision AVR в вопросах и ответах
paranoik писал(а):Как в старший байт переменной x положить значение переменной h, и соответственно в младший байт значение переменной l?
x=h;
x= (x<<8)|l; /// или x= (x<<8)+l;
paranoik писал(а):И обратная задача, как прочитать старший байт из x в переменную h (можно ли это сделать без ассемблерных вставок или операций сдвига\деления)?
h= x>>8;
Операции <<, >> - сдвиг. Чего их не использовать?
paranoik писал(а):А то думал что есть что то вроде l=Low(x); но в справке ничего подобного не нашел
А кто мешает сделать её самому:
#define Low(x) ((unsigned char)(x>>8))
.....
h = Low(0x1234); // h= 0x12
Re: CodeVision AVR в вопросах и ответах
hd44780 писал(а):forastr писал(а):Хочу массиву присвоить содерижимое файла.Как это сделать?(Например массив fontdata
, а в файле font.txt : 0x00,0x01,0x02)
А откуда ты файл в контроллере возьмешь? Будешь ради 3-х байт прикручивать SD карточку?
Напиши просто
char a[]={0x00,0x01,0x02};
Зачем тут файл?
я может неправильно выразился:как правильно с точки зрения синтаксиса написать через #include.(Просто имеется два файла различных кодировок для бегущей строки , и чтобы каждый раз при перекомпиляции не переписывать массив где 255х7 элементов,то проще включть содержание типа fontoffset[] =#include <font.txt>, тока у меня ошибки выскакивают )
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
forastr писал(а):я может неправильно выразился:как правильно с точки зрения синтаксиса написать через #include.(Просто имеется два файла различных кодировок для бегущей строки , и чтобы каждый раз при перекомпиляции не переписывать массив где 255х7 элементов,то проще включть содержание типа fontoffset[] =#include <font.txt>, тока у меня ошибки выскакивают )
определить разные массивы fontoffset[]={1,2,...n} в разных файлах font.c или font.h и подключать нужный файл с помощью #include
«И всё-таки она вертится!»
Re: CodeVision AVR в вопросах и ответах
Apparatchik писал(а):forastr писал(а):я может неправильно выразился:как правильно с точки зрения синтаксиса написать через #include.(Просто имеется два файла различных кодировок для бегущей строки , и чтобы каждый раз при перекомпиляции не переписывать массив где 255х7 элементов,то проще включть содержание типа fontoffset[] =#include <font.txt>, тока у меня ошибки выскакивают )
определить разные массивы fontoffset[]={1,2,...n} в разных файлах font.c или font.h и подключать нужный файл с помощью #include
Спасибо!Помогло!
Re: CodeVision AVR в вопросах и ответах
дошёл таки до акселерометров и захотелось его к предмету привязать знаю что предмет движется минимальным шагом 0.01 если дать 0.1 то он будет вертется быстрее чем глаз увидит ,в чём же касяк ! ацп макс 1023 пока что пробую вывести на екран через разные пути добавление 0 с переди, даже поделил макс теперь 150 но 0 не преписывает(
как его переправить?
как его переправить?
Re: CodeVision AVR в вопросах и ответах
Прочитал ваш пост 4 раза, ничего не понял. Какой шаг, какой акселерометр, к какому предмету. Схему в студию, или алгоритм, или хотя бы подробное описание проблемы. Что у вас не получается..?
Re: CodeVision AVR в вопросах и ответах
может не так вырозился в общем у меня акселерометр 7260qr2 у него 3 оси и 3 выхода на них напряжение 0.8-2.6В в ацп 240-800 едениц
мне надо хотяб 1 ось перевести из вида 200 в ==> 0.200
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
{
long int m,k,s;
// ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
LcdInit();
while (1)
s=read_adc(0); //ïîðòû
?????????
sprintf (lcd_buf, "V=%u", s);
LcdString(1,3);
LcdUpdate();
delay_ms(200);
LcdClear();
так вот интересно реально ли сделать 0 с точкой перед значением ацп? схема классичекая
мне надо хотяб 1 ось перевести из вида 200 в ==> 0.200
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
{
long int m,k,s;
// ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
LcdInit();
while (1)
s=read_adc(0); //ïîðòû
?????????
sprintf (lcd_buf, "V=%u", s);
LcdString(1,3);
LcdUpdate();
delay_ms(200);
LcdClear();
так вот интересно реально ли сделать 0 с точкой перед значением ацп? схема классичекая
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
CS16AMX писал(а): ïîðòû
?????????
а что это за язык?)
Re: CodeVision AVR в вопросах и ответах
Сериг писал(а):CS16AMX писал(а): ïîðòû
?????????
а что это за язык?)
ето русиш)))) слово "порты")
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: CodeVision AVR в вопросах и ответах
если вопрос об отображении на индикаторе, то просто сформируйте строку в буфере перед отображением.CS16AMX писал(а):перевести из вида 200 в ==> 0.200
Код: Выделить всё
strcpy(new_buf,"0.");
strcat(new_buf,lcd_buf);Re: CodeVision AVR в вопросах и ответах
нее,к сожалению в дальнейшем охото к 3Д модельке прицепить на экране хотяб увидеть без точек 01024 , а вообще надо бы на програмном коде это проделать как я понял в флоат можно это осуществить
Re: CodeVision AVR в вопросах и ответах
Есть новая версия, рабочая. http://eldigi.ru/site/prog/cvavr.php
Там правда дистрибутив сам триал, но заменой файла из прилагаемой папки можн получить полностью рабочую.
Из плюсов можно отметить возможность назначать выводы для лсд индикатора, раньше только целый порт.
Там правда дистрибутив сам триал, но заменой файла из прилагаемой папки можн получить полностью рабочую.
Из плюсов можно отметить возможность назначать выводы для лсд индикатора, раньше только целый порт.
Re: CodeVision AVR в вопросах и ответах
доброго времени суток
пишу программу, чип мега32, шьётся по 5ти проводкам исключительно, пашет с кварцем на 16.
вопрос следующий.
вот часть текста программы
.......
PORTA.3=0;
PORTC.4=0;
PORTC.5=0;
PORTC.7=0;
PORTC.3=0;
PORTC.2=0;
PORTA.0=0;
PORTD.3=0;
PORTA.7=0;
PORTD.6=0;
PORTB.2=0;
PORTA.2=0;
PORTB.1=0;
PORTB.7=0;
PORTB.5=0;
PORTA.5=0;
PORTB.0=0;
PORTA.1=0;
......
делаю так сказать свотовое табло
это у меня одна буква.
Как мне всё это разместить в 4х строчках???
а то у меня программа получается очень большая.
пишу программу, чип мега32, шьётся по 5ти проводкам исключительно, пашет с кварцем на 16.
вопрос следующий.
вот часть текста программы
.......
PORTA.3=0;
PORTC.4=0;
PORTC.5=0;
PORTC.7=0;
PORTC.3=0;
PORTC.2=0;
PORTA.0=0;
PORTD.3=0;
PORTA.7=0;
PORTD.6=0;
PORTB.2=0;
PORTA.2=0;
PORTB.1=0;
PORTB.7=0;
PORTB.5=0;
PORTA.5=0;
PORTB.0=0;
PORTA.1=0;
......
делаю так сказать свотовое табло
это у меня одна буква.
Как мне всё это разместить в 4х строчках???
а то у меня программа получается очень большая.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
вспомнить, наконец, что порт - это сразу 8 бит, и устанавливать сразу все 8 бит, а не по одному.Warn писал(а):Как мне всё это разместить в 4х строчках???
а то у меня программа получается очень большая.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
Или писать всё в одну строку если уж так нужно каждый бит отдельно
Код: Выделить всё
PORTA.3=0; PORTC.4=0; PORTC.5=0;...«И всё-таки она вертится!»