roboforum.ru

Технический форум по робототехнике.


CodeVision AVR - глюк с указателями

Учиться можно на своих ошибках, но учиться на чужих — быстрее и дешевле ;)

CodeVision AVR - глюк с указателями

Сообщение -= Александр =- » 13 ноя 2007, 21:06

Уже час бьюсь над проблемой:
unsigned long int a=0x1234ABCD;
char* pointer;

pointer=(char*)&a;

Читаю значение *pointer - а там ноль. Что за глюк?
При том что если a сделать unsigned int - все работает.
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: CodeVision AVR - глюк с указателями

Сообщение rig » 14 ноя 2007, 12:14

решил не решил?
Код: Выделить всёРазвернуть
unsigned long int a=0x1234ABCD;
char* pointer;
unsigned char bufer[33];
sprintf(bufer,"%02x%02x%02x%02x",
   *pointer++,*pointer++,*pointer++,*pointer++   );
lcd_puts(bufer);

вот так сделал получил на ЛСД

а=0x12345678 ЛСД:78563412
а=0x1234ABCD ЛСД:cdab3412
а=0x01020304 ЛСД:04030201
младший байт пишется первым

все вроде нормуль

на эту строчку только ругается, но работает как надо
pointer=&a;
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: CodeVision AVR - глюк с указателями

Сообщение -= Александр =- » 14 ноя 2007, 19:25

В общем это был глюк бета-версии CodeVision 1.24. Щас скачал новый - все ОК!
Переношу в грабли...
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич


Вернуться в Осторожно — грабли ;)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11