Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 24.01.2008, 12:04  
tiasur1982
Прохожий
 
Регистрация: 28.08.2007
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
tiasur1982 на пути к лучшему
По умолчанию Как зашить две и более программы на Cи в один МК AVR?

Как в WINAVR организовать роботу нескольких, отдельно работающих, программ водном корпусе МК AVR? Понятно, что нужно создать главную программу. Но как всё это собрать в один проэкт? Помогите новичку. Заранее спасибо.
Реклама:
tiasur1982 вне форума  
Непрочитано 24.01.2008, 12:42  
nokazus
Вид на жительство
 
Регистрация: 05.09.2006
Сообщений: 360
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nokazus на пути к лучшему
По умолчанию

Keil uVision позволяет организовать ОС. Где-то в журнале (вроде "Схемотехника") была статейка по организации многозадачного режима в 8051.
ИМХО - все это не нужно. Нужно грамотно поставить задачу и составить алгоритм-программу. Все ОСы кушают сильно ресурсы. Да и что означает несколько задач в МК? Несколько процессов? Пожалуйста. Задействуйте максимально прерывания, таймеры, аппаратные ресурсы. Задайте приоритеты, создайте семафоры (флаги) для разграничения доступа, флаги запроса на обработку и готовности (флаги событий). Все. Это будет оптимальное решение под конкретную Вашу задачу. Ведь что значит "многозадачность" для одного МК? Есть таймер, который выделяет интервалы времени процессора на выполнение одной из задач по очереди. При переключении должно выполняться сохранение всех общих ресурсов (регистров, указателей и т.п.). Должно выполняться разграничение области данных и аппаратных ресурсов), короче много часто не нужных вещей.
Удачи.
nokazus вне форума  
Непрочитано 24.01.2008, 13:35  
tiasur1982
Прохожий
 
Регистрация: 28.08.2007
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
tiasur1982 на пути к лучшему
По умолчанию

Побробую более конкретно. Програмы(очень простые)пишу на Си. Новичок. Идёт обучение. Интересует объединение нескольких программ в одну потому что макет один. Компилятор WinAVR. Есть 4 маленьких программи. Хотелось бы нажимая кнопу(или по очереди 4)показывать роботу этих программ.
tiasur1982 вне форума  
Непрочитано 24.01.2008, 13:43  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Сообщение от tiasur1982
Хотелось бы нажимая кнопу(или по очереди 4)показывать роботу этих программ.
Это одна программа. Просто меняющая поведение по нажатию кнопки.

"Си для МК" вот
http://www.roboforum.ru/viewtopic.php?f=2&t=1070
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 24.01.2008, 14:11  
tiasur1982
Прохожий
 
Регистрация: 28.08.2007
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
tiasur1982 на пути к лучшему
По умолчанию

Cасибо, но найти конкретику на AVR123 очень тяжело.
tiasur1982 вне форума  
Непрочитано 24.01.2008, 14:14  
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию

наверно можно скомпилить несколько программ с разным смещением, и залить их в кристалл. По вектору сброса влепить что то вроде бутлоадера, который будет в завивсимости от кнопки переходить на заданое смещение и вызывать нужную программу...
stri вне форума  
Непрочитано 24.01.2008, 14:35  
tiasur1982
Прохожий
 
Регистрация: 28.08.2007
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
tiasur1982 на пути к лучшему
По умолчанию

Спасибо. Хотелось бы получить ответ в виде фрагмента програмного кода. Прогр.А,прогр.В.
Главная прог.
{
Код обращения к А.;
Код обращения к В.;
}
Простите новичка что так конкретно.
Может нужно создать свою библиотеку (файл.h).
tiasur1982 вне форума  
Непрочитано 24.01.2008, 14:55  
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию

if (A) (*((void(*)(void))PROG_START_A))();
if (B) (*((void(*)(void))PROG_START_B))();

Где PROG_START_A например 0х200 а PROG_START_B 0x400

По крайней мере в бутлодере от HiTech так сделано. я проверял-работает.

Да, этот код для ПИК-ов, но впринципе должен работать где угодно, т.к. это стандартный С.
stri вне форума  
Непрочитано 24.01.2008, 15:28  
tiasur1982
Прохожий
 
Регистрация: 28.08.2007
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
tiasur1982 на пути к лучшему
По умолчанию

Всем спасибо. Буду пробовать. Но по моему в WinAVR оператора PROG_START_ нет.
tiasur1982 вне форума  
Непрочитано 24.01.2008, 15:35  
nokazus
Вид на жительство
 
Регистрация: 05.09.2006
Сообщений: 360
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nokazus на пути к лучшему
По умолчанию

Пишите программы, только обзываете их не main{} , а prog1{}, prog1{}, .. В "программах" предусматриваете выход по нажатию кнопки. Затем пишите main{} в которой производите поочередный вызов "программ". Перед вызовом нужно дождаться отпускания кнопки. Все.
Удачи.
nokazus вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВИТАЯ ПАРА +220В И КАК ЗАШИТЬ ЕЕПРОМ Gladkih Микроконтроллеры, АЦП, память и т.д 26 24.12.2008 20:31
Разрушение программы в AVR при понижении питания. Andrewg Микроконтроллеры, АЦП, память и т.д 19 09.06.2008 14:02
Как в AVR Studio для программы на ассемблере указать "к Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 4 04.03.2008 14:54
как зашить 90s8535 ? arcxxx Микроконтроллеры, АЦП, память и т.д 36 30.09.2007 16:43
Использовать один EEPROM 24С16А двумя МК.Как состыковать? Zemlyanov Микроконтроллеры, АЦП, память и т.д 12 21.09.2007 22:17


Часовой пояс GMT +4, время: 12:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot