У всех задачи разные. Я вопрос задавал конкретный. Зачем в вопросе расписывать на 3 страницы почему так надо, а ни как иначе.ARV писал(а):именно о том и шла речь - оставьте компилятору компиляторово, не майтесь ерундой
Найдено 30 результатов
- Ср ноя 16, 2016 18:06:29
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
- Вт ноя 15, 2016 23:08:51
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
По своей теме: еще раз огромное спасибо *Trigger*. Все остальное - дупль пусто.
И еще, может кому-то пригодится.
Обнаружился дополнительный шедевр в CV - он оказывается 0-вую ячейку EEPROM сам блокирует без спроса. И все распологает с адреса 0x01.
НО! самое интересное, что он это делает и с ATXmega ...
И еще, может кому-то пригодится.
Обнаружился дополнительный шедевр в CV - он оказывается 0-вую ячейку EEPROM сам блокирует без спроса. И все распологает с адреса 0x01.
НО! самое интересное, что он это делает и с ATXmega ...
- Вт ноя 15, 2016 03:43:42
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Это как? Как вы пытаетесь работать с переменными по абсолютным адресам, не задавая их?
А вот так:
eeprom unsigned int var1[8] @0x20; // будет находиться в адресе 0x20
eeprom unsigned int var2 @0x28; //будет находиться в адресе 0x28
eeprom unsigned int var3; //будет находиться в адресе 0x00
А ...
А вот так:
eeprom unsigned int var1[8] @0x20; // будет находиться в адресе 0x20
eeprom unsigned int var2 @0x28; //будет находиться в адресе 0x28
eeprom unsigned int var3; //будет находиться в адресе 0x00
А ...
- Вт ноя 15, 2016 00:36:42
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
#pragma keep+
#pragma keep-
Именно то, что было нужно! Я помнил, что есть на этот счет что-то но ее с #pragma optsize- перепутал.
Спасибо!
Кстати. Плюсануть сообщение не получается. Висит затемнение с кружком загрузки и больше ничего не происходит.
Добавлено after 7 minutes 36 seconds:
А это ...
#pragma keep-
Именно то, что было нужно! Я помнил, что есть на этот счет что-то но ее с #pragma optsize- перепутал.
Спасибо!
Кстати. Плюсануть сообщение не получается. Висит затемнение с кружком загрузки и больше ничего не происходит.
Добавлено after 7 minutes 36 seconds:
А это ...
- Пн ноя 14, 2016 23:53:25
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
А это то тут вообще при чем... volatile работает.Аlex писал(а):Чё, даже volatile не работает в кодвижне ?
- Пн ноя 14, 2016 23:33:05
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
А работать с адресами EEPROM вручную, задавая абсолютные адреса?
Не поверите, но именно так сейчас и работает.
Как только я добавлю какую ни будь переменную и забуду указать ей абсолютный адрес, она окажется в адресе 0.
Добавлено after 4 minutes 54 seconds:
окружаем кусок кода такими ...
Не поверите, но именно так сейчас и работает.
Как только я добавлю какую ни будь переменную и забуду указать ей абсолютный адрес, она окажется в адресе 0.
Добавлено after 4 minutes 54 seconds:
окружаем кусок кода такими ...
- Пн ноя 14, 2016 22:57:55
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Перенос переменных в структуру ровным счетом ничего не меняет.
Нормальные компиляторы только предупреждают о том, что переменная не используется и самостоятельно ее не удаляют и не переназначают адреса остальных переменных. Но это ж Codevision...
Обмануть компилятор - прочитать данные и ничего с ...
Нормальные компиляторы только предупреждают о том, что переменная не используется и самостоятельно ее не удаляют и не переназначают адреса остальных переменных. Но это ж Codevision...
Обмануть компилятор - прочитать данные и ничего с ...
- Пн ноя 14, 2016 21:11:32
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Я ж написал вопрос. Прочтите его заново.
Компилятор сносит не используемый массив и переносит на его место используемые переменные.
Компилятор сносит не используемый массив и переносит на его место используемые переменные.
- Пн ноя 14, 2016 20:48:37
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
В старых мегах портится 0-я ячейка еепром. Как там с этим делом обстоят дела сейчас - да без понятия. Проще расположить все данные начиная с адреса 0x10 и забыть об этой проблеме, не вникая.Аlex писал(а):Почему в eeprom'е заинтересовали ?
- Пн ноя 14, 2016 19:51:58
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
А вы можете по человечески описать то, что вам надо добиться.
Добавлено after 11 minutes 21 second:
Добавлено after 11 minutes 21 second:
Про переменные - ничего.Аlex писал(а): Что он (мануал) говорит по этому поводу ?
- Пн ноя 14, 2016 17:02:29
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Вопрос.
Нужно пропустить первые 16 байт в еепроме.
Есть 2 переменные:
eeprom unsigned char EmptyDat[16];
eeprom unsigned int MyVar;
Так MyVar должна попасть в адрес 0x10.
В софте EmptyDat не используется, он только для того, чтоб все остальные переменные расположились начиная с адреса 0x10.
Проблема ...
Нужно пропустить первые 16 байт в еепроме.
Есть 2 переменные:
eeprom unsigned char EmptyDat[16];
eeprom unsigned int MyVar;
Так MyVar должна попасть в адрес 0x10.
В софте EmptyDat не используется, он только для того, чтоб все остальные переменные расположились начиная с адреса 0x10.
Проблема ...
- Пн ноя 14, 2016 06:21:23
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Даа... Тут любят поумничать.
if ((PINB & (1 << 4)) == 0) для 0 на порте
if ((PINB & (1 << 4)) != 0) для 1 на порте
if ((PINB & (1 << 4)) == 0) для 0 на порте
if ((PINB & (1 << 4)) != 0) для 1 на порте
- Чт ноя 10, 2016 05:37:56
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
В дата стэк, после перегрузки из него в регистры, в них оказывается лажа.
- Ср ноя 09, 2016 17:34:20
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
одно маленькое НО
Прикол в том, чо я уже до того, как задать вопрос перепробовал все варианты, включая unsigned char *. В регистры загружается лажа. Может я конечно уставший что-то и напортачил. Уже не важно.
Правильно работает так:
unsigned char DES_ENC_Data[8];
unsigned char DES_ENC_SN[8];
void ...
Прикол в том, чо я уже до того, как задать вопрос перепробовал все варианты, включая unsigned char *. В регистры загружается лажа. Может я конечно уставший что-то и напортачил. Уже не важно.
Правильно работает так:
unsigned char DES_ENC_Data[8];
unsigned char DES_ENC_SN[8];
void ...
- Ср ноя 09, 2016 15:57:19
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Так то оно так, да не так, как оказалось.Z_h_e писал(а):Совершенно верно, имя массива и есть адрес, равно как и указатель. А теперь вернитесь к началу и почитайте все-таки что Вам предлагали.
Если так сделать и загрузить значения в регистры в них оказывается полная лажа.
- Ср ноя 09, 2016 15:33:41
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Вот в этом (вызов функции):ARV писал(а):в каком именно месте вашего кода это не произошло?
tde (DES_ENC_Data, DES_ENC_SN);
Почему-то думал что имя массива и есть адрес и ни к какому unsigned int его приводить не надо потому как он и есть unsigned int.
- Ср ноя 09, 2016 14:39:00
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Я знаю достаточно многое, но не все.Z_h_e писал(а):Ну а коли Вы все знаете и лучше всех, то зачем тут вопросы задаете?
А какого лешего предобразование в unsigned int не произошло автоматически я до сих пор не знаю.
- Вт ноя 08, 2016 19:36:06
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Нет. Они лежат в RAM и на них ссылается регистр Y
- Вт ноя 08, 2016 17:44:54
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Если функция на ассемблере написана - сразу в регистры перегружать входящие значения надо. А они про такую штуку, как указатели вообще ничего не знают.WiseLord писал(а):realm: а зачем так извращаться?
- Вт ноя 08, 2016 10:36:58
- Форум: AVR
- Тема: CodeVision AVR в вопросах и ответах
- Ответы: 8415
- Просмотры: 2569399
Re: CodeVision AVR в вопросах и ответах
Только, при передаче аргументов, делайте явное преобразование из указателя в unsigned int .
tide((unsigned int)DES_ENC_Data, (unsigned int)DES_ENC_SN);
Спасибо. Именно то что я и проушанил.
Добавлено after 7 minutes 50 seconds:
Ну не может он заставлять думать :)
Думать больно.
Ну не мое ...
tide((unsigned int)DES_ENC_Data, (unsigned int)DES_ENC_SN);
Спасибо. Именно то что я и проушанил.
Добавлено after 7 minutes 50 seconds:
Ну не может он заставлять думать :)
Думать больно.
Ну не мое ...