Числа с плавающей точкой в микроконтроллерах AVR

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Можно сделать на Си переменную и запись в нее значения из регистра таймера, скомпилировать и посмотреть листинг на АСМе - вот пример
http://www.radiokot.ru/forum/viewtopic.php?t=5192
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

McDrew писал(а):Перечитал несколько источников, том числе avr100.asm
Это о записи в EEPROM - "Accessing the EEPROM"

примеры на АСМ и Си смотрите в даташит на AVR Mega и Тини

========

Кстати посмотрите еще раз текст avr100.asm и сравните с этим !

Код: Выделить всё

#include <90S8535>

eeprom int f; // переменная f в EEPROM

void main(void)
{

f = TCNT2; // записать значение таймера2 в f

while (1); // быть тут всегда
}
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Родился
Сообщения: 15
Зарегистрирован: Чт май 10, 2007 10:32:55

Сообщение McDrew »

В каком редакторе ваша программа? В АВР студио этот код не работает... :(
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

В компиляторе CVAVR (2.4 Мб всего) - я же написал что код для примера ПРОСТОТЫ привел.

Вот шаблон для CVAVR - http://www.radiokot.ru/forum/viewtopic.php?t=2273
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 15
Зарегистрирован: Чт май 10, 2007 10:32:55

Сообщение McDrew »

tych, но ЕЕПРОМ, это ведь и есть встроенная память данных?
Я просто только-только вникаю... еще не разобрался...
Контактная информация:
Реклама
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

ну можно наверно и так сказать. EEPROM медленно записывается и хранит данные при выключении МК - более 100000 перезаписей вроде допускает.

Еще есть "оперативка" SRAM и 32 регистра общего назначения и память Флэш - в нее программу записывают.

Обычные переменные располагаются компилятором в SRAM.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Родился
Сообщения: 15
Зарегистрирован: Чт май 10, 2007 10:32:55

Сообщение McDrew »

В флэш памяти (памяти программ?) происходит обращение по адресам .org, правильно? Например, начало программы начинается с . орг 0, а прерывание по переполнению таймера 2 происходит по адресу .орг 4... Что это за адреса такие? И как их узнать? В памяти данных тоже есть такие адреса?

Как я понял - EEPROM - это как бы внутреннее ПЗУ, у которого сранитеьно небольшое количество циклов перезаписи? Но можно подключать еще и внешнюю память, с "лучшими характеристиками"? :)

EEPROM (энергонезависимая), SRAM (ОЗУ) - это все память данных? Кроме flash, кторая является памятью программ? В нее и шьется сама программа?
А R0-R31 - "рабочие" регистры.

Начитался про Гарвардскую архитектуру, хотелось бы все расставить по полочкам. Спасибо за терпение! :)
Последний раз редактировалось McDrew Сб май 12, 2007 18:02:42, всего редактировалось 1 раз.
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Советую не забивать голову а писать на Си. Я тебе уже привел пример для сравнения.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Родился
Сообщения: 15
Зарегистрирован: Чт май 10, 2007 10:32:55

Сообщение McDrew »

К сожелению, в университете настаивают на АВР Студио, хотя Си было бы приятней и полезнее... :(
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

McDrew писал(а):в университете настаивают на АВР Студио, хотя Си было бы приятней и полезнее... :(
Может не знают что есть бесплатный Си компилятор WinAVR ?

И бесплатный симулятор VMLAB
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Родился
Сообщения: 15
Зарегистрирован: Чт май 10, 2007 10:32:55

Сообщение McDrew »

Утверждают, что наиболее удобный и развитой АВР Студио...
Контактная информация:
Родился
Сообщения: 1
Зарегистрирован: Пт янв 19, 2007 14:40:51
Откуда: г. Чебоксары

Сообщение shmool »

офф: У нас в университете тоже считают, что наиболее удобное и развитое - это АВРСтудио. :) Поэтому и лабу, где было необходимо реализовать биквадратное звено с дробными коэффициентами предложили делать на ассемблере либо с плавающей, либо с фиксированной точкой. Я решил разобраться и сделал с плавающей. Два товарища из группы сказали "нафик нужно и сделали на Си"

Если интересно самому разобраться с алгоритмами работы с числами с плавающей точкой, то рекомендую книжку "Злобин В. К. Григорьев В. Л. Программирование арифметических операций на МП: Учеб. пособие для технических вузов.-М.: Высш. шк., 1991.-303 с.: ил." Там правда описано для МП К580, но при определенной доле терпения можно разобраться что и как они делают, и написать то же самое для МК АВР. Там же объяснены и арифметические операции с числами с фиксированной точкой. Книжка относительно легко находится в .djvu формате (~3 MB), но если не получится найти, то я попробую где-нить выложить.

У меня сложилось мнение, что применять плавающую точку на АВР-ках обычно не нужно, ибо вполне хватает и фиксированной, работа с которой занимает гораздо меньше тактов МК. Хотя с другой стороны у чисел с плавающей точкой бОльший представляемый диапазон. У меня не так много опыта, поэтому имхо.

На всякий случай подклею свою программу. Написано наверно неочень красиво и кое-где непродуманно и неоптимизированно, но, может, кому-нибудь поможет.
Вложения
lab3.zip
(7.73 КБ) 380 скачиваний
Шел шушпанчик по шоссе и сосал шушпалку.
Контактная информация:
Открыл глаза
Сообщения: 54
Зарегистрирован: Ср авг 29, 2007 01:37:56

Сообщение Romanich »

FAndrey писал(а):Жаль что не все так же просто на ПЛИС.
если FPU планируется ставить для промежуточных вычислений(а в конце нужна целая часть числа), то к АВРке можно подрубить сопроцесссор - ну например MC68882. Только общение будет с ним через адресное пространство внешней памяти
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»