может поэтому нет времени на чтение?
может поэтому нет времени на чтение?
Код: Выделить всё
char *lcdB = "XXX";
int code = 4;
....
sprintf (lcdB,"%u",code);
lcd_puts(lcdB);Хвала интернету и участникам форума)Аlex писал(а):Всё-таки книжки рулят ? Или гугл помог ?
Вам повезло - в следующей ячейке, после массива, оказалось нулевое значениеПоставил значение 103....В протеусе всё в норме...
А может он только заглавные буквы принимает ?пишу: lcdB = "ytie"; а он на меня матом
Код: Выделить всё
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 *'Код: Выделить всё
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;
}Код: Выделить всё
chScanPort = 0х80;
if(chScanPort != 0х80)
{
Я чёт не понял... Теперь мне надо символ преобразовать в число чтоб вывести, но числа он не выводит, и надо преобразовывать их в символы....... Пойду к я лучше застрелюсь нахренАlex писал(а):Значит он может принимать только неизвестные, типа ИКС
isx писал(а):Пойду к я лучше застрелюсь нахрен
Код: Выделить всё
char lcdB[10] = "abcdef";
int code = 4;
....
sprintf (lcdB,"%u",code);
lcd_puts(lcdB);
... это что за стандарт ... наверное Ваш личный?По стандарту пишу: lcdB = "ytie"; а он на меня матом
Не помогло ((( Все равно попадает в тело ифа.А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 писал(а):isx писал(а):Пойду к я лучше застрелюсь нахрен![]()
Код: Выделить всё
char lcdB[10] = "abcdef"; int code = 4; .... sprintf (lcdB,"%u",code); lcd_puts(lcdB);
Дык у меня на таком стандарте всё работало... Как поставил sprintf всё отказало к чертям собачьимChipKiller писал(а):... это что за стандарт ... наверное Ваш личный?По стандарту пишу: lcdB = "ytie"; а он на меня матом
А у меня работаетТак тоже не катит, та же ошибка....
Может контроллер израсходовал всю память и сошёл сумаКак поставил sprintf всё отказало к чертям собачьим