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

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

Сообщение Arlleex »

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

Сообщение SII »

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

Сообщение Arlleex »

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

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

ПОдскажите, что значит #pragma used+
#pragma used-, сгенерированная CodeVisionAVR? внутри нее прописана функция, но зачем ее заключают между этими директивами...
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 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 раз.
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

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

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

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

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

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

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

Сообщение SarCity »

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

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

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

Сообщение SarCity »

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

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

Yellow Tiger писал(а):В версии 1.25 хэлп-файл был размером в 2 мегабайта, что, конечно же, значительно содержательнее, чем хэлп в ~12 килобайт - переходи на эту версию и читай её хэлп. Изображение
Я скопировала часть хелпа из-за того что весь весит 6.5 Мб, а это превышает здешний лимит. Там только часть про директивы.
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

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

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

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

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

Ну - и как надо было искать, чтобы не найти?! :?
Прорезались зубы
Аватара пользователя
Сообщения: 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 КБ) 227 скачиваний
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20

Сообщение Dexa »

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

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Ответить

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