Код: Выделить всё
unsigned int in = 2601;
float flt = 0.0f;
flt = static_cast<float>(in)*0.01f;
И обратное преобразование:
Код: Выделить всё
unsigned int in = 0;
float flt = 26.02f;
in = static_cast<int>(flt/0.01f);
Код: Выделить всё
unsigned int in = 2601;
float flt = 0.0f;
flt = static_cast<float>(in)*0.01f;
Код: Выделить всё
unsigned int in = 0;
float flt = 26.02f;
in = static_cast<int>(flt/0.01f);
каким образом я могу применить их для микроконтроллера?
techlab писал(а):что-то я совсем запутался с указателями, после асма тяжко писать на С, но затягивает...
подскажите, как организовать функцию вывода строки на дисплей имея функцию вывода байта?
Код: Выделить всё
void put_char(char c); // это функция вывода символа
// а вот это функция, которую вы хотите - вывод строки
void put_str(char *str){
while(*str) put_char(*str++);
}Код: Выделить всё
ISR(USART0_RX_vect) //USART_RXC_vect, прием для Atmega128
{
if (cnt == 0)
{
RecendMas[cnt] = UDR0;
cnt++;
}
if (cnt == bytes){ //Если все байты приняты установить cRx в 1
cRx = 1;
}
}Код: Выделить всё
ISR(USART0_TX_vect)
{
UDR0 = str;
}
O_o Wut?alexey6522 писал(а):переменная, содержащая строку.
Это что за слово может what?AI_Disable писал(а):O_o Wut?
Отлично, Сусанин, в болото их ! Какой МК хоть? AVR? PIC или вообще STM ?Babulesnik писал(а):Где лучше хранить,в flash или eeprom ? или есть другой вариант.Если в флеш,то использовать PROGMEM/pgm_read_ для записи/чтения ??? Подскажите пожалуйста как правильно решить даную проблему.
При выключенном МК данные нельзя никак сохранить - питания нет...сохранять данные при выключенном питании МК
ШутникиАlex писал(а):При выключенном МК данные нельзя никак сохранить
Читаем из даташита:Babulesnik писал(а):Мне нужно сохранять данные при выключенном питании МК.Это счетчик баланса заброшенных денег.Где лучше хранить,в flash или eeprom ?
Отсюда делаем вывод, что детектировать пропажу питания нужно раньше, чем напряжение упадет ниже,чем допустимо для надежной работы EEPROMDuring periods of low V_CC, the EEPROM data can be corrupted because the supply voltage is
too low for the CPU and the EEPROM to operate properly.
Тут есть ремарочка аттрибут PROGMEM действует только на вашем компьютере,но не на контроллере.Babulesnik писал(а):Если в флеш,то использовать PROGMEM/pgm_read_ для записи/чтения ???
но опять же я не уверен, что получится это сделать интерактивно, тем более при угасающем питанииRead-While-Write Self-Programming mechanism
1.другой вариант есть просто тупо записывать каждый акт пополнения в EEPROM и все.про CRC не забывая(это же деньги, а не мухи в котлетах)Babulesnik писал(а):или есть другой вариант.
Какая же это ошибка ?Я тоже заметил ошибку,но зачем же так подтрунивать то?
Чётко и внятно написано.Мне нужно сохранять данные при выключенном питании МК
Извиняюсь,некорректно выразился.Я имел ввиду,что-бы при отключении питания данные хранились в памяти.При поступлении денег,каждый раз баланс должен сохраняться в память.При выключенном МК данные нельзя никак сохранить - питания нет...
Спасибо.А в флеш памяти можно хранить? Заранее извиняюсь за нубский вопрос.И если хранить в епроме,то можно пример кода С или подсказку,куда копать.По сути мне нужно хранить только одну переменную типа int.DX168B писал(а):Такие данные лучше хранить во внешних EEPROM. А во встроенной в мк EEPROM лучше хранить настройки девайса.