может поэтому нет времени на чтение?
Вопросы по С/С++ (СИ)
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
а у кого в наше время есть свободное время?все так,но кто то находит время для чтения книг,а кто то целый день!убивает на решение простой задачи.
может поэтому нет времени на чтение?
может поэтому нет времени на чтение?
В поисках истины человек развивается.
- Реклама
Re: Вопросы по С/С++ (СИ)
Просто если я прочитаю книгу, то пока дойдёт до практики всё забуду, а после дня использования нескольких новых команд забыть их будет невозможно
Вот у меня ещё всплыл геморрой. Как перевести из числового типа значение int в символьный char? В бейсике это делала одна команда, а тут никак не найду подходящего оператора....
Вот у меня ещё всплыл геморрой. Как перевести из числового типа значение int в символьный char? В бейсике это делала одна команда, а тут никак не найду подходящего оператора....
Re: Вопросы по С/С++ (СИ)
Всё же книжку надо читать, не?
http://ru.wikipedia.org/wiki/Itoa_%28%D0%A1%D0%B8%29
http://ru.wikipedia.org/wiki/Itoa_%28%D0%A1%D0%B8%29
Re: Вопросы по С/С++ (СИ)
Проблема решена...
Так можно преобразовать числовое значение в символьное и вевести его на LCD.
Если кому нужно то вот пример:
%u - это служит для выбора данных в переменной code. Сейчас он означает, что code - это десятичное беззнаковое число.
Так можно преобразовать числовое значение в символьное и вевести его на LCD.
Если кому нужно то вот пример:
Код: Выделить всё
char *lcdB = "XXX";
int code = 4;
....
sprintf (lcdB,"%u",code);
lcd_puts(lcdB);- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Всё-таки книжки рулят ? Или гугл помог ?
Только вот он плохо Вам помог. Представляю что произойдёт, если Ваша переменная code будет больше 99
Только вот он плохо Вам помог. Представляю что произойдёт, если Ваша переменная code будет больше 99
- Реклама
Re: Вопросы по С/С++ (СИ)
Хвала интернету и участникам форума)Аlex писал(а):Всё-таки книжки рулят ? Или гугл помог ?
Поставил значение 103....В протеусе всё в норме... А что должно было произойти?
Насчёт плохо помог есть малость... Теперь я предварительно не могу изменить значение lcdB.
По стандарту пишу: lcdB = "ytie"; а он на меня матом
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Вам повезло - в следующей ячейке, после массива, оказалось нулевое значениеПоставил значение 103....В протеусе всё в норме...
А может он только заглавные буквы принимает ?пишу: lcdB = "ytie"; а он на меня матом
Re: Вопросы по С/С++ (СИ)
ввёл 9999 ... Всё норм....
Всмысле заглавные? Я уже и заглавные и прописные и что тока не пробовал
, он мне постоянно
Всмысле заглавные? Я уже и заглавные и прописные и что тока не пробовал
Код: Выделить всё
Error: C:\Users\isx\Desktop\Ôëåêñ\Íîâàÿ ïàïêà\167.c(20): a value of type 'flash unsigned char [5]' can't be assigned to an entity of type 'unsigned char *'- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Значит он может принимать только неизвестные, типа ИКС 
- Chip115
- Сверлит текстолит когтями
- Сообщения: 1132
- Зарегистрирован: Пт фев 16, 2007 14:18:20
- Откуда: Новосибирск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Всем привет! Помогите, пожалуйста, понять где баг.
В общем вот код.
Условие if(chScanPort != 0х80) выполняется, когда chScanPort==0х80. Почему так? Мне надо что бы как только chScanPort==0х80, то выполнялось тело else.
Пишу в кейле. ((
В общем вот код.
Код: Выделить всё
char chScan(void)
{
chScanPort = ~P0 & 0xF0; // Когда тут становится такое chScanPort=0x80 (в отладчике в вотчах показывает именно так)
if(chScanPort != 0х80) // Вот это условие все равно выполняется ((
{
P0 = ~(chScanPort << 1);
chScanYCount = 4*++chScanYCount;
}
else
{
P0 = 0xEF;
chScanYCode = 0;
chScanYCount = 0;
}
return chScanYCode;
}Пишу в кейле. ((
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
А если так попробовать
?
Код: Выделить всё
chScanPort = 0х80;
if(chScanPort != 0х80)
{
Re: Вопросы по С/С++ (СИ)
Я чёт не понял... Теперь мне надо символ преобразовать в число чтоб вывести, но числа он не выводит, и надо преобразовывать их в символы....... Пойду к я лучше застрелюсь нахренАlex писал(а):Значит он может принимать только неизвестные, типа ИКС
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
isx писал(а):Пойду к я лучше застрелюсь нахрен
Код: Выделить всё
char lcdB[10] = "abcdef";
int code = 4;
....
sprintf (lcdB,"%u",code);
lcd_puts(lcdB);
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Вопросы по С/С++ (СИ)
... это что за стандарт ... наверное Ваш личный?По стандарту пишу: lcdB = "ytie"; а он на меня матом
- Chip115
- Сверлит текстолит когтями
- Сообщения: 1132
- Зарегистрирован: Пт фев 16, 2007 14:18:20
- Откуда: Новосибирск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Не помогло ((( Все равно попадает в тело ифа.Аlex писал(а):А если так попробовать?Код: Выделить всё
chScanPort = 0х80; if(chScanPort != 0х80) {
Вот дизасм. можете глянуть? а то я не очень в асме ((
Код: Выделить всё
43: chScanPort = 0x80;
C:0x0800 750A80 MOV chScanPort(0x0A),#P0(0x80)
44: if(chScanPort != 0)
C:0x0803 E50A MOV A,chScanPort(0x0A)
C:0x0805 6011 JZ C:0818
45: {
46: P0 = ~(chScanPort << 1);
C:0x0807 25E0 ADD A,ACC(0xE0)
C:0x0809 F4 CPL A
C:0x080A F580 MOV P0(0x80),A
47: chScanYCount = 4*++chScanYCount;
C:0x080C 0509 INC chScanYCount(0x09)
C:0x080E E509 MOV A,chScanYCount(0x09)
C:0x0810 25E0 ADD A,ACC(0xE0)
C:0x0812 25E0 ADD A,ACC(0xE0)
C:0x0814 F509 MOV chScanYCount(0x09),A
48: }
49: else
C:0x0816 8008 SJMP C:0820
50: {
51: P0 = 0xEF;
C:0x0818 7580EF MOV P0(0x80),#RSTSRC(0xEF)Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Эх... Вот бы ещё знать Ваш АСМ... 
Re: Вопросы по С/С++ (СИ)
Так тоже не катит, та же ошибка....Аlex писал(а):isx писал(а):Пойду к я лучше застрелюсь нахрен![]()
Код: Выделить всё
char lcdB[10] = "abcdef"; int code = 4; .... sprintf (lcdB,"%u",code); lcd_puts(lcdB);
Дык у меня на таком стандарте всё работало... Как поставил sprintf всё отказало к чертям собачьимChipKiller писал(а):... это что за стандарт ... наверное Ваш личный?По стандарту пишу: lcdB = "ytie"; а он на меня матом
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
А у меня работаетТак тоже не катит, та же ошибка....
У Вас наверное компиль нестандартный
Может контроллер израсходовал всю память и сошёл сумаКак поставил sprintf всё отказало к чертям собачьим
Re: Вопросы по С/С++ (СИ)
sprintf как-то неразумно толкать в МК. Хотя я ХЗ, может у вас там ARM с 128 метрами памяти отдельным чипом 
Так а чем itoa/atoi не устраивает?
Так а чем itoa/atoi не устраивает?


