Страница 66 из 628

Добавлено: Вт сен 22, 2009 12:37:34
Arlleex
википедиа не дала результатов, так что тут спрошу.
Как понимать (или что такое) инициаллизация и для чего она нужна?
RTOS - что это такое?

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

Добавлено: Вт сен 22, 2009 13:59:13
Arlleex
понятно, спасибо) :))

директива pragma

Добавлено: Ср сен 23, 2009 06:30:09
Весна
ПОдскажите, что значит #pragma used+
#pragma used-, сгенерированная CodeVisionAVR? внутри нее прописана функция, но зачем ее заключают между этими директивами...

Добавлено: Ср сен 23, 2009 19:20:43
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+

спасибо

Добавлено: Чт сен 24, 2009 06:31:23
Весна
Благодарю за участие. Вот ответ который показался мне более понятным, вдруг кому пригодится=) Функции, которые прописаны внутри этих директив заменяют стандартные библиотечные функции СИ т.е. можно заново переопределить такие функции как printf(), getchar(), putchar() и т.д.

Re: спасибо

Добавлено: Чт сен 24, 2009 07:58:25
Yellow Tiger
Весна писал(а):Вот ответ который показался мне более понятным, ... Функции, которые прописаны внутри этих директив заменяют стандартные библиотечные функции СИ т.е. можно заново переопределить такие функции как printf() ...
Этот ответ абсолютно неверен, хотя, безусловно, понятен. Изображение "Переопределять" функции приходится одними и теми же способами что с этой директивой, что без неё. Попытка переопределения "в лоб", лишь указывая эту прагму, заканчивается той же ошибкой "function doesn't match previous declaration", что и без прагмы; соответственно, способ "переопределения" - от прагмы used никак не зависит:
Изображение
Попытка заменить реализацию тоже не зависит от прагмы used:
Изображение
Изображение
Правильный ответ находится там, где я сказал - в документации к компилятору. Ответ там более полный - читай хелп.

Добавлено: Чт сен 24, 2009 12:42:13
Весна
в хелпе к компилятору про pragma used ничего не сказано, в отличие от других директив потому и спрашиваю...версия 2.03.4 standart

Добавлено: Чт сен 24, 2009 18:45:05
Yellow Tiger
Я привёл цитату именно из хелпа.
У меня нет этой версии компилятора - можно help-файл от неё сюда выложить?

Добавлено: Чт сен 24, 2009 20:29:57
SarCity
Сложно ли переделать код от ATmega640 в код для ATmega8? Переделайте пжл или подскажите как это сделать.

Добавлено: Чт сен 24, 2009 21:31:38
Yellow Tiger
SarCity писал(а):...подскажите как это сделать.
Исходник от WinAVR'а, поэтому надо открыть Makefile WinAVR'ным MFile'ом и выставить через меню другой MKU. После этого открыть исходники и, вооружившись двумя даташитами, подправить под другой камень все зависимые вещи. Процы сильно отличаются как объемом памяти, так и количеством периферии на борту, поэтому программу может протребоваться и переписать по иному, а может так статься, что и вовсе не удастся уложиться в М8: если сравнивать М640/М8, то памяти там - 8к/1к, таймеров16 - 4шт/1шт, входов/выходов - 86/23, ШИМ-выходов - 16/3, UART'ов - 4шт/1шт, ну, и так далее...

Добавлено: Пт сен 25, 2009 07:26:01
Весна
Выкладываю хелп.

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

Добавлено: Пт сен 25, 2009 07:51:34
SarCity
Да эту мегу применили так сказать то, что было под рукой скорее всего. На выходе хекс весит чуть более килобайта. Да и задача проста - организовать I2C. Тут даже на тини2313 можно сделать, только я не знаю как:-(

Добавлено: Пт сен 25, 2009 07:55:18
Весна
Yellow Tiger писал(а):В версии 1.25 хэлп-файл был размером в 2 мегабайта, что, конечно же, значительно содержательнее, чем хэлп в ~12 килобайт - переходи на эту версию и читай её хэлп. Изображение
Я скопировала часть хелпа из-за того что весь весит 6.5 Мб, а это превышает здешний лимит. Там только часть про директивы.

Добавлено: Пт сен 25, 2009 08:01:42
Yellow Tiger
A я разве просил часть? Если ты уже не нашла в этом файле нужную информацию, то почему ты думаешь, что искать её мне нужно именно в том разделе, где ты её не нашла? Не понимаю такой ход мыслей... мм?

Добавлено: Пт сен 25, 2009 20:26:40
Yellow Tiger
Вот, скачал версию 2.04.4, и даже в этой "эволюционной" версии всё нашлось, причём - на счет "раз":
Изображение

Ну - и как надо было искать, чтобы не найти?! :?

Добавлено: Сб сен 26, 2009 17:42:14
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 ничего нет, прочерк (по даташиту). Такая же ситуация и с остальными двумя регистрами.

Кто поможет?

Добавлено: Пн сен 28, 2009 17:49:05
Dexa
http://inetrating.ru/product_info.php?m ... eb0ea3c3d6
печатка есть у кого-нибудь?

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