Ну это уже зависит от того, как много и какие числа ты будешь хранить, можешь в ручную посчитать)novarobotix писал(а):Stanislavich писал(а):а это сколько в unsigned char data[255]-х ?
atmega16 использование встроенной памяти
- Сообщения: 76
- Зарегистрирован: Чт ноя 13, 2014 19:37:34
- Реклама
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
ну получается 256 чисел от 0 до 255. а сколько на это нужно символов двоичного кода? как переводить? и 512 байт это точно 4144 символов двоичного кода? может в 2 раза меньше?и зачем переводить в символы двоичного кода?Stanislavich писал(а):Ну это уже зависит от того, как много и какие числа ты будешь хранить, можешь в ручную посчитать)
в даташите сказано память равна 512 байт, число FF то есть 256 равно одному байту, то есть поместится 512 штук FF, у меня в unsigned char data[255] 256 штук FF, итого я могу хранить 2 штуки unsigned char data[255] в 512 байтах памяти. так?
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 76
- Зарегистрирован: Чт ноя 13, 2014 19:37:34
FF это не 256, а 11111111, т.е. 8 бит, 8*256=2048 бит всего, при условии, что у тебя все эти ячейки забиты твоими FF ами. 512 байт это примерно 4096 бит (оговорочка). В любом случае должно хватить. Но неужели ты хранишь целых 256 параметров? Что это за устройство такое)novarobotix писал(а):и 512 байт это точно 4144 символов двоичного кода? может в 2 раза меньше?и зачем переводить в символы двоичного кода?
в даташите сказано память равна 512 байт, число FF то есть 256 равно одному байту, то есть поместится 512 штук FF, у меня в unsigned char data[255] 256 штук FF, итого я могу хранить 2 штуки unsigned char data[255] в 512 байтах памяти. так?
А вообще FF это 255(11111111), 256 - "100000000" (100 в 16ричной)
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
да точно, 255.ну в принципе так оно и будет, это я ошибся.ЦАП 8-ми битный, 255 значений, цапом генерю постоянное напряжение и выдаю его на катушку шагового мотора постепенно увеличивая. оказалось сильно неравномерное движение ротора при линейном увеличении напряжения на обмотке. это из за того что чем ближе магнит к обмотке тем сильнее притяжение и зависимость квадратичная. поэтому в результате движение волнами получилось. посему теперь буду ваять датчик линейного перемещения, вычислять функцию необходимую для линейного перемещения вала мотора, заносить её в память МК и двигать мотором с её помощью. эта функция и есть 255 необходимых значений ЦАП.
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 76
- Зарегистрирован: Чт ноя 13, 2014 19:37:34
Да и вообще, зачем разглагольствовать. Тема заезженная, попробуй на натуре, все равно 100 тыс. не наберешь так быстро.
- Реклама
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
а работа идёт, всё в процессе, датчик из оптрона почти готов, сетка рисок для датчика в процессе изготовления, программу обдумываю.
а обсуждение сколько поместится данных в памяти я не считаю пустой болтовнёй. сколько там в реале поместится ещё надо посмотреть на практике. может МК там какую-то служебную информацию хранит(указатели или ещё что-то) и реально туда влезает меньше. может кто-то юзал в реале и есть реальный опыт. а сколько влезет реально важная информация, так как для разных скоростей мотора функция по идее разная будет, и может понадобится больше данных хранить - для каждого диапазона скоростей своя функция. если не хватит места внутри тогда снаружи буду внешний епром лепить, но хочется обойтись внутренним.
кстати, если сделать код
то при каждом включении в массив нули будут писаться? он же типа определяется, и данные потом каждый раз заносить заново надо. мне же надо чтобы при включении данные считывались из епром и потом работать с ними. ну и записать их как-то туда один раз.
хочется что-то типа этого:
а обсуждение сколько поместится данных в памяти я не считаю пустой болтовнёй. сколько там в реале поместится ещё надо посмотреть на практике. может МК там какую-то служебную информацию хранит(указатели или ещё что-то) и реально туда влезает меньше. может кто-то юзал в реале и есть реальный опыт. а сколько влезет реально важная информация, так как для разных скоростей мотора функция по идее разная будет, и может понадобится больше данных хранить - для каждого диапазона скоростей своя функция. если не хватит места внутри тогда снаружи буду внешний епром лепить, но хочется обойтись внутренним.
кстати, если сделать код
Код: Выделить всё
eeprom unsigned char data[255];хочется что-то типа этого:
Код: Выделить всё
unsigned char data[255];
for (i=0; i < 255; i++) {
data[i]=(читаем значение из ячейки памяти номер i)
}
sub //калибровка
{
for (i=0; i < 255; i++) {
ячейки памяти номер i=какое-то число которое вычисляем;
}
}
- Вложения
-
- DipTrace PCB - mikro.pdf
- (10.78 КБ) 131 скачивание
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Нет.может МК там какую-то служебную информацию хранит(указатели или ещё что-то)
Скорее всего, в атрибут eeprom включен атрибут noinit, иначе было бы сложно использовать.кстати, если сделать код
eeprom unsigned char data[255];
то при каждом включении в массив нули будут писаться?
На чем пишете? В gcc-avr, включая AVRStudio (про новые Atmel Studio сказать ничего не могу) автоматической записи не происходит, надо явно вызвать eeprom_write_byte() или подобные из eeprom.h.
В cvavr вроде запись идет при присвоении, что хуже в плане безопасности.
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
пишу на CodeVisionAV
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
обнуляется при ресетеCOKPOWEHEU писал(а):Нет.может МК там какую-то служебную информацию хранит(указатели или ещё что-то)Скорее всего, в атрибут eeprom включен атрибут noinit, иначе было бы сложно использовать.кстати, если сделать код
eeprom unsigned char data[255];
то при каждом включении в массив нули будут писаться?
как ему noinit прописать?
короче заработало. поставил галочку eesave во фьюзах
Глупый не задает вопросы. Глупый и так все знает.


