Ещё вчера и я долдычил про itoa, даже ссылку на википедию дал
Вопросы по С/С++ (СИ)
Re: Вопросы по С/С++ (СИ)
Вот это точно достойно сайта http://govnokod.ru , шедевр ёмана
Ещё вчера и я долдычил про itoa, даже ссылку на википедию дал
Ещё вчера и я долдычил про itoa, даже ссылку на википедию дал
- Реклама
Re: Вопросы по С/С++ (СИ)
Здравствуйте, тут был вынужден заняться написанием кода с помощью языка С(в программе IAR) для подключения Ацп ADS1274 к микроконтроллеру STM32F103C6T6A LQFP48 с ядром ARM Cortex M3. Начал искать в интернете примеры программ, т. к. ничего в этом не шарю, но пока что не нашёл ничего путного. Может кто-нибудь поделится какой-нибудь полезной информацией, которая сможет мне помочь в этом деле?
Заранее спасибо!
Заранее спасибо!
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
вообще можно проще и короче.Так что даже так использовать её выгодней...
Код: Выделить всё
unsigned char func(unsigned char x){
switch (x)
{
case 0:
return '0';
break;
case 1:
return '1';
break;
case 3:
return '3';
break;
case 4:
return '4';
break;
case 5:
return '5';
break;
case 6:
return '6';
break;
case 7:
return '7';
break;
case 8:
return '8';
break;
case 9:
return '9';
break;
}
}
temp=code;
AA[0]=func(temp / 100);
AB[0]=func(temp /10);
AC[0]=func(temp);
и учите учебники настоятельно вам люди советуют.
В поисках истины человек развивается.
Re: Вопросы по С/С++ (СИ)
1. Работать ваше произведение не будет. Хотя нет, будет конечно, но вот как...
Код: Выделить всё
temp=code;
AA[0]=func(temp / 100);
AB[0]=func(temp /10);
AC[0]=func(temp);Код: Выделить всё
+ '0'- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
упрощенная версия itoa - где-то так...
Код: Выделить всё
char dArr[4];
//----------------------------------
void fn_CharToStr(unsigned char cChar)
{
const flash unsigned char cStep[3]={100,10,1};
unsigned char i,atemp;//
unsigned char val,temp;//
val=cChar;//
for (i=0; i<3; i++)//
{
temp=cStep[i];
atemp=0;//
while(val >= temp)//
{
atemp++;//
val-=temp;//
}
dArr[i]=atemp+0x30;
}
dArr[i]=0;// формируем завершающий нуль
}
//------------------------------------
- Реклама
- coredumped
- Опытный кот
- Сообщения: 838
- Зарегистрирован: Вт апр 12, 2011 18:38:19
- Откуда: с Земли
Re: Вопросы по С/С++ (СИ)
Какой именно помощи Вы ожидаете? Здесь обсуждаются методы и приемы программирования на языке С. Что именно не получается?Михаил Л писал(а):Здравствуйте, тут был вынужден заняться написанием кода с помощью языка С(в программе IAR) для подключения Ацп ADS1274 к микроконтроллеру STM32F103C6T6A LQFP48 с ядром ARM Cortex M3.
Все будет только лучше, в крайнем случае - хуже.
Re: Вопросы по С/С++ (СИ)
Пока толком ничего. Я разобрал даташиты и начал искать то, что может мне помочь в написании программы, но пока что нашёл только пару статей по теме только для микроконтроллеров AVR.
Поэтому буду рад любой книге, статье, совету, которые помогут мне в написании кода.
Поэтому буду рад любой книге, статье, совету, которые помогут мне в написании кода.
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Вопросы по С/С++ (СИ)
наверное у меня специальный Яндекс - по фразе "примеры кода для stm32f100" почему-то 3 миллиона ссылокМихаил Л писал(а):...начал искать то, что может мне помочь в написании программы, но пока что нашёл только пару статей по теме только для микроконтроллеров AVR.
Re: Вопросы по С/С++ (СИ)
В том то и дело, что у меня компилятор ругается когда я делаю присоединение flash и flash ... По этой же причине пришлось отказаться от itoa.... Не хочет компиль выводить такие данные на LCD...urry писал(а):const flash unsigned char cStep[3]={100,10,1};
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Да.... Наши труды напрасны . Очень жаль. 
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
И чем ваши строчки отличны от моих?Совесть писал(а):вы бы тоже туда заглянули.
1. Работать ваше произведение не будет. Хотя нет, будет конечно, но вот как...Код: Выделить всё
temp=code; AA[0]=func(temp / 100); AB[0]=func(temp /10); AC[0]=func(temp);
Вообще я просто показал автору, что зная хотя бы что такое функция можно себе жизнь упростить, а не тупо копировать одно и то же.
Вообще я бы уж точно не стал таким образом делать.
Я между прочим поглядываю, но иногда забываю как правильно,
а под рукой только телефон, поэтому бывает ошибочно что либо пишу.
Да вот я тоже не знаю, че человек паритсяСовесть писал(а): 2. Зачем вообще нужна эта функция? ее вполне заменитКод: Выделить всё
+ '0'
Не обманывайте себя, поиск ищет как логическое или "для stm32f100" и всего три тысячи результатов.ChipKiller писал(а):по фразе "примеры кода для stm32f100" почему-то 3 миллиона ссылок
В поисках истины человек развивается.
Re: Вопросы по С/С++ (СИ)
- Roman Venom
- Сверлит текстолит когтями
- Сообщения: 1135
- Зарегистрирован: Сб июл 11, 2009 18:42:21
- Откуда: Украина, г.Николаев
Re: Вопросы по С/С++ (СИ)
isx
Гы. а в пиках itoa работает. Просто надо смотреть синтаксис именно в микрочиповских шпаргалках.
Гы. а в пиках itoa работает. Просто надо смотреть синтаксис именно в микрочиповских шпаргалках.
Успех - императив!
Re: Вопросы по С/С++ (СИ)
Блин.... что то не ладное твориться... Толи я от экзамена не отошёл, толи с компилятором у меня что то не так...
Посмотрите пожалуйста код:
Как видно из кода здесь в массив RAZMER[] поочерёдно, начиная с нулевого элемента присваивается символ, соответствующего значения переменной CODE, которая с каждым циклом возрастает на 1 (как и переменная "pozicia"). Потом всё это выводится на экран.
Изначально массив RAZMER[5] = "rrrr". Так вот, вместо "RAZMER = 2345" на экране появляется "RAZMER = 2rrr" .. Почему то к pozicia и к CODE не прибавляется единица после каждого цикла...
Проект протеуса почему то не разрешается на форум выкладывать....
Посмотрите пожалуйста код:
Код: Выделить всё
#include <mega8.h>
#include <lcd.h>
#include <stdio.h>
#include <io.h>
#include <delay.h>
#include <string.h>
#asm
.equ __lcd_port=0x12; PORTD
#endasm
char flash *lcdA = "erye";
char lcd_buf[10] = "RAZMER = ";
char RAZMER[5] = "rrrr";
int code = 2;
int pozicia = 0;
void main( void ) {
if (pozicia < 4) {
switch (code)
{
case 0:
RAZMER[pozicia] = '0';
break;
case 1:
RAZMER[pozicia] = '1';
break;
case 2:
RAZMER[pozicia] = '2';
break;
case 3:
RAZMER[pozicia] = '3';
break;
case 4:
RAZMER[pozicia] = '4';
break;
case 5:
RAZMER[pozicia] = '5';
break;
case 6:
RAZMER[pozicia] = '6';
break;
case 7:
RAZMER[pozicia] = '7';
break;
case 8:
RAZMER[pozicia] = '8';
break;
case 9:
RAZMER[pozicia] = '9';
break;
}
code = code + 1;
pozicia = pozicia + 1;
}
lcd_init( 16 );
lcd_clear( );
lcd_gotoxy( 0,0 );
lcd_putsf( lcdA );
lcd_gotoxy( 0,1 );
strcat(lcd_buf, RAZMER);
lcd_puts( lcd_buf );
;}
Изначально массив RAZMER[5] = "rrrr". Так вот, вместо "RAZMER = 2345" на экране появляется "RAZMER = 2rrr" .. Почему то к pozicia и к CODE не прибавляется единица после каждого цикла...
Проект протеуса почему то не разрешается на форум выкладывать....
- Roman Venom
- Сверлит текстолит когтями
- Сообщения: 1135
- Зарегистрирован: Сб июл 11, 2009 18:42:21
- Откуда: Украина, г.Николаев
Re: Вопросы по С/С++ (СИ)
isx
Почему у вас в присваивании начального значения переменных типа char двойные кавычки?
Почему у вас в присваивании начального значения переменных типа char двойные кавычки?
Успех - императив!
Re: Вопросы по С/С++ (СИ)
Незнай... я так всегда делаю...
Тут не в этом дело, потому что если прописать вместо задающего цикла просто
то он выводит "RAZMER = 968r"
Тут не в этом дело, потому что если прописать вместо задающего цикла просто
Код: Выделить всё
RAZMER[0] = '9';
RAZMER[0] = '6';
RAZMER[0] = '8';Re: Вопросы по С/С++ (СИ)
Потому-что именно так записываются строки. А где вы увидели присвоение переменной типа чар ? Я нашел только массивы и указатели.Roman Venom писал(а):Почему у вас в присваивании начального значения переменных типа char двойные кавычки?
Вот это:
Код: Выделить всё
RAZMER[0] = '9';
RAZMER[0] = '6';
RAZMER[0] = '8';Выводит только 1 символ потому что надо книги читать, обратите внимание на разделы с управляющими конструкциями.
Re: Вопросы по С/С++ (СИ)
Упс, опечатался.....
...
Я имел ввиду:
Я имел ввиду:
Код: Выделить всё
RAZMER[0] = '9';
RAZMER[1] = '6';
RAZMER[2] = '8';- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
может хватит выносить всем мозг и начать уже думать?
добавьте внизу вашего кода еще один кейс
и посмотрите как поменяется результат
добавьте внизу вашего кода еще один кейс
и посмотрите как поменяется результат
Код: Выделить всё
RAZMER[pozicia] = '7';
break;
case 8:
RAZMER[pozicia] = '8';
break;
case 9:
RAZMER[pozicia] = '9';
break;
def[s]o[/s]ault: RAZMER[pozicia] = 'x'; break;
}
Последний раз редактировалось vitalik_1984 Чт июн 07, 2012 16:44:15, всего редактировалось 3 раза.
В поисках истины человек развивается.


