Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

википедиа не дала результатов, так что тут спрошу.
Как понимать (или что такое) инициаллизация и для чего она нужна?
RTOS - что это такое?
Не умеешь - не берись, но не взявшись не научишься...
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Сообщение SII »

Плохо искал, значит. RTOS -- Real-Time Operating System, операционная система реального времени, ОСРВ. Инициализация -- подготовка чего-то к работе. Для программы это установка начальных значений переменных и т.д. и т.п., для железа -- приведение устройств в состояние готовности к использованию (выполнение сброса и последующее программирование нужных режимов). На некоторых вычислительных машинах термин "инициализация" применяется также к дискам и означает то же самое, что быстрое форматирование в Винде -- запись на диск служебной информации файловой системы, создающей пустой диск, т.е. подготовка его к использованию, но без полного анализа качества поверхности диска.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

понятно, спасибо) :))
Не умеешь - не берись, но не взявшись не научишься...
Весна
Родился
Сообщения: 7
Зарегистрирован: Вт сен 22, 2009 14:51:26
Контактная информация:

директива pragma

Сообщение Весна »

ПОдскажите, что значит #pragma used+
#pragma used-, сгенерированная CodeVisionAVR? внутри нее прописана функция, но зачем ее заключают между этими директивами...
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Знай и умей свой CvAvr:
CV AVR, online help писал(а):// this #pragma directive will prevent the compiler
// from generating a warning that the function was
// declared, but not used in the program

#pragma used+
Весна
Родился
Сообщения: 7
Зарегистрирован: Вт сен 22, 2009 14:51:26
Контактная информация:

спасибо

Сообщение Весна »

Благодарю за участие. Вот ответ который показался мне более понятным, вдруг кому пригодится=) Функции, которые прописаны внутри этих директив заменяют стандартные библиотечные функции СИ т.е. можно заново переопределить такие функции как printf(), getchar(), putchar() и т.д.
Последний раз редактировалось Весна Чт сен 24, 2009 12:39:17, всего редактировалось 1 раз.
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Re: спасибо

Сообщение Yellow Tiger »

Весна писал(а):Вот ответ который показался мне более понятным, ... Функции, которые прописаны внутри этих директив заменяют стандартные библиотечные функции СИ т.е. можно заново переопределить такие функции как printf() ...
Этот ответ абсолютно неверен, хотя, безусловно, понятен. Изображение "Переопределять" функции приходится одними и теми же способами что с этой директивой, что без неё. Попытка переопределения "в лоб", лишь указывая эту прагму, заканчивается той же ошибкой "function doesn't match previous declaration", что и без прагмы; соответственно, способ "переопределения" - от прагмы used никак не зависит:
Изображение
Попытка заменить реализацию тоже не зависит от прагмы used:
Изображение
Изображение
Правильный ответ находится там, где я сказал - в документации к компилятору. Ответ там более полный - читай хелп.
Весна
Родился
Сообщения: 7
Зарегистрирован: Вт сен 22, 2009 14:51:26
Контактная информация:

Сообщение Весна »

в хелпе к компилятору про pragma used ничего не сказано, в отличие от других директив потому и спрашиваю...версия 2.03.4 standart
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Я привёл цитату именно из хелпа.
У меня нет этой версии компилятора - можно help-файл от неё сюда выложить?
Аватара пользователя
SarCity
Прорезались зубы
Сообщения: 215
Зарегистрирован: Вт июн 10, 2008 09:17:06
Откуда: г. Саратов
Контактная информация:

Сообщение SarCity »

Сложно ли переделать код от ATmega640 в код для ATmega8? Переделайте пжл или подскажите как это сделать.
Вложения
screenkey.rar
Исходник
(7.65 КБ) 241 скачивание
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

SarCity писал(а):...подскажите как это сделать.
Исходник от WinAVR'а, поэтому надо открыть Makefile WinAVR'ным MFile'ом и выставить через меню другой MKU. После этого открыть исходники и, вооружившись двумя даташитами, подправить под другой камень все зависимые вещи. Процы сильно отличаются как объемом памяти, так и количеством периферии на борту, поэтому программу может протребоваться и переписать по иному, а может так статься, что и вовсе не удастся уложиться в М8: если сравнивать М640/М8, то памяти там - 8к/1к, таймеров16 - 4шт/1шт, входов/выходов - 86/23, ШИМ-выходов - 16/3, UART'ов - 4шт/1шт, ну, и так далее...
Весна
Родился
Сообщения: 7
Зарегистрирован: Вт сен 22, 2009 14:51:26
Контактная информация:

Сообщение Весна »

Выкладываю хелп.
Вложения
help.txt
про директивы
(11.96 КБ) 375 скачиваний
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

В версии 1.25 хэлп-файл был размером в 2 мегабайта, что, конечно же, значительно содержательнее, чем хэлп в ~12 килобайт - переходи на эту версию и читай её хэлп. Изображение
Аватара пользователя
SarCity
Прорезались зубы
Сообщения: 215
Зарегистрирован: Вт июн 10, 2008 09:17:06
Откуда: г. Саратов
Контактная информация:

Сообщение SarCity »

Да эту мегу применили так сказать то, что было под рукой скорее всего. На выходе хекс весит чуть более килобайта. Да и задача проста - организовать I2C. Тут даже на тини2313 можно сделать, только я не знаю как:-(
Весна
Родился
Сообщения: 7
Зарегистрирован: Вт сен 22, 2009 14:51:26
Контактная информация:

Сообщение Весна »

Yellow Tiger писал(а):В версии 1.25 хэлп-файл был размером в 2 мегабайта, что, конечно же, значительно содержательнее, чем хэлп в ~12 килобайт - переходи на эту версию и читай её хэлп. Изображение


Я скопировала часть хелпа из-за того что весь весит 6.5 Мб, а это превышает здешний лимит. Там только часть про директивы.
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

A я разве просил часть? Если ты уже не нашла в этом файле нужную информацию, то почему ты думаешь, что искать её мне нужно именно в том разделе, где ты её не нашла? Не понимаю такой ход мыслей... мм?
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Вот, скачал версию 2.04.4, и даже в этой "эволюционной" версии всё нашлось, причём - на счет "раз":
Изображение

Ну - и как надо было искать, чтобы не найти?! :?
Аватара пользователя
SarCity
Прорезались зубы
Сообщения: 215
Зарегистрирован: Вт июн 10, 2008 09:17:06
Откуда: г. Саратов
Контактная информация:

Сообщение SarCity »

Помогите только начавшему программеру :) Есть код под тини861, пытаюсь переделать в мегу8.

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

   cli(); 
   cnt = 0;
   DDRB = 0x3;
   PORTB = 0x83;
   DDRA = 0xFF;
   PORTA = 0xFF;
   
   TIMSK= (1<<TOIE0);
   
   TCCR0A = (1<<TCW0);
   
   TCCR0B = (1<<CS00);
   
   sei();


Я не могу понять как 3 последних регистра использовать для меги8, т.е. у тини861 в регистре TIMSK битом 1 является TOIE0, а у меги8 в этом регистре в бите1 ничего нет, прочерк (по даташиту). Такая же ситуация и с остальными двумя регистрами.

Кто поможет?
Вложения
.rar
исходник
(7.43 КБ) 224 скачивания
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

http://inetrating.ru/product_info.php?m ... eb0ea3c3d6
печатка есть у кого-нибудь?
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

SarCity писал(а):т.е. у тини861 в регистре TIMSK битом 1 является TOIE0, а у меги8 в этом регистре в бите1 ничего нет, прочерк (по даташиту). Такая же ситуация и с остальными двумя регистрами.
не понятно, с чего вы взяли, что в этих командах идет работа с 1-ым битом регистров? приведенная запись почти аппаратно-независима, поэтому не сомневайтесь: будет работать на обоих МК :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «Разные вопросы по МК»