а так работает?svr007 писал(а):Подскажите в чем загвоздка
Код: Выделить всё
unsigned int AB;
unsigned int C = 0x1C2; // 450
...
а так работает?svr007 писал(а):Подскажите в чем загвоздка
Код: Выделить всё
unsigned int AB;
unsigned int C = 0x1C2; // 450
...
вроде как unsigned решила проблему. Странно почему тогда в Протеусе работало.Большое спасибо.unalex писал(а):а так работает?svr007 писал(а):Подскажите в чем загвоздкаКод: Выделить всё
unsigned int AB; unsigned int C = 0x1C2; // 450 ...
Код: Выделить всё
eeprom struct MY_str
{
unsigned char N: 8; // номер штыря
unsigned long CKZ: 16; // расчётное среднеквадратическое значение
unsigned int Ky: 8; // коэффициент усиления
unsigned int CKZ_MS: 16; // С микросхемы среднеквадратическое значение
}Tstr[2];
eeprom Tstr mButt_1[2] = {{0,0,0,0},{0,0,0,0}};Код: Выделить всё
eeprom struct MY_str
{
unsigned char N: 8; // номер штыря
unsigned long CKZ: 16; // расчётное среднеквадратическое значение
unsigned int Ky: 8; // коэффициент усиления
unsigned int CKZ_MS: 16; // С микросхемы среднеквадратическое значение
}Tstr[2]={{1,2,3,4},{9,6,7,8}};
Код: Выделить всё
typedef struct{
int a;
char b;
double c;
}m_t;
m_t m_struct ={1, 2, 0.1}; // Создаём структуру m_t с именем m_struct
Ошибку понял правильно только как быть. Он ругается на 4 СALL которые находятся в прерывании по AЦП а этот кусок кода находится далековато от главного цикла. их разделяют функции.7. Вопрос:
Не могу понять почему появляется ошибка: "Relative branch out of reach". Компилятор начал ругаться когда я добавил в программе несколько подпрограмм
(даже если они пустые) на brne, breq?
Ответ:
Команды условных переходов brne и breq имеют "дальность работы" от -64 до +63. У Вас расстояние до метки больше, поэтому ассемблер и выдает ошибку.
Используйте RCALL и RJMP, у которых дальность действия составляет от -2047 до +2047. И не строк, а команд (слов по 2 байта).
Что конкретно от меня требуется?pyzhman писал(а):Объявлены корректно, но читали ли вы еррату к еепрому?
Согласен. У меня в еепром сохраняется по нажатию кнопки. Но не работает...vitalik_1984 писал(а):Amstron тема про сохранение в ЕЕПРОМ уже разжевана и облизана до нельзя. Нужно работать с оперативной памятью. На то она и оперативная, а сохранять при необходимости поскольку число перезаписи для ЕЕПРОМ ограничено. Например при пропаже питания, пока еще не сильно разряжен конденсатор можно сохранить важные переменные.
Так же желательно проверять не совпадает ли случайно значение в памяти с тем, что мы хотим сохранить: Если они равны, то зачем тратить ресурс?
http://easyelectronics.ru/avr-uchebnyj- ... eprom.htmlAmstron писал(а):Есть ли тема в которой именно это разжованно?
Не в одной из сылок не идет речи о нашем компиляторе CVAVR !!!unalex писал(а):http://easyelectronics.ru/avr-uchebnyj- ... eprom.htmlAmstron писал(а):Есть ли тема в которой именно это разжованно?
http://samou4ka.net/page/eeprom-v-mikrokontrollerah-avr
это ссылки выдал Google на первой странице поиска, по-моему довольно доходчиво расписано