роботы робототехника микроконтроллеры


 Страниц (3): [1] 2 3 »   

> Описание: Как вкл. 2 независимых цикла в ATMEGA8
ATmegaRUSSIA Post Id


Рядовой


Сообщений всего: 1
Дата рег-ции: Авг. 2012  



Здравствуйте!
Работаю на СИ , CodeVisionAVR. Базовые понатия есть.
Подскажите можно ли вкл. два независимых цыкла в ATMEGA8?
Т.е. : при нажатии одной кнопки вкл. постоянное мигание светодиода и мигание на некоторое время.
 
 Top
elmot Post Id



Гуру


Сообщений всего: 1141
Дата рег-ции: Дек. 2010  



Что такое цыкл?



===============================
Цыган на цыпочках цыкнул на цыпленка.
 
 Top
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



[quote=elmot]Что такое цыкл?



===============================


Как можно запустить 2 бесконечных цыкла при нажатии на одну кнопку?

while(1)
{ тело цыкла }
 
 Top
anar Post Id



Главнокомандующий


Сообщений всего: 441
Дата рег-ции: Июнь 2011  



Пишется цикл.
 
 Top
cjAndrews Post Id



Лейтенант


Сообщений всего: 25
Дата рег-ции: Авг. 2012  



Перестаньте стебатьться! Как будто не знаете что такое цыкл и как он организуется в разных языках?
Это прерывания Slava143, в мега8 можно их сделать можно вроде 8 (не странно-ли?), еще это называют вытясняющей (корпоротивной) многозадачностью. Но это враьё

Это обычное знание асма и стэка, - удачи!
 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



ну докопались...
я конечно тоже сторонник русскоязычного изьяснения, но по делу то тоже можно что-нибудь написать.

запустить 2 цикла не проблема, проблема между ними переключаться.
как вариант можно одним крутится постоянно, а исполнение другого периодически совершать по прерыванию от таймера, но тогда второй не должен быть бесконечным: таймер дернулся - один (несколько) проход по телу совершился.
 
 Top
cjAndrews Post Id



Лейтенант


Сообщений всего: 25
Дата рег-ции: Авг. 2012  



в авр обычно три задачи заложено. Одна основная и две по прерыванию от таймера (сейчас nest полезет ругаться, ведь еще еще вачдог и ризет)

Ответ: Можно, читайте асм для авр для своего мк.
(Добавление)
основной цикл можно пустым сделать, всю многозадачность будут решать прерывания между собой,Вам решать Улыбка
 
 Top
Нестандарт Post Id



Рядовой


Сообщений всего: 6
Дата рег-ции: Авг. 2012  



Два основных цикла одновременно работать не могут. Но если вам нужно одновременно запустить два процесса , то это можно (сильно зависит от того что это за процессы).

Если вам нужно мигать двумя светодиодами (двумя пинами) , но с разным периодом , то тут все просто . Делаете таймер , сводите его значения к милисекундам (секундам и т.д.) и уже , по значению таймера "дергаете" ногами МК.
Более сложные процессы можно производить по переменно , но с большой частотой их смены.
А вообще , все сильно зависит от того что вы делаете и для чего.
(Добавление)
Цитата:
nest полезет ругаться

nestа здесь уже пол года как нет.
 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



я тут озгами пораскинул:
с таймером вообще можно любое колличество процессов запустить, а по прерыванию запускать орбитра, который будет отдавать кому-нибудь управление (по очереди или еще как...)
 
 Top
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



Что то понял, а что не очень.Спс за Учение Русго Языка)
Идея такова:
Это типа охранки на 4 шлейфа. с шлейфами я разобрался и написал все с ЦИКЛАМИ for, очень громоздко но по другому не умею.
- есть кнопка при нажатии которой ставим под охрану(кнопку сделал)
- есть светодиод который показывает статус, под охраной или нет.(чето не получается)
- есть пищалка(отдельная схема) на которую при сработке одного из шлейфов подаем лог 0, а при 1 она молчит.(не получаеться)

Что подскажите?Или есть вопросы?
 
 Top
Нестандарт Post Id



Рядовой


Сообщений всего: 6
Дата рег-ции: Авг. 2012  



Вообще программа элементарная.

По нажатию кнопки пишем в переменную 1 (если до этого она была 0) или наоборот. Пишем 0 если до этого она была 1. Таким образом , по нажатию кнопки , будет происходить ивертация (или инвертирование ?) переменной.

Если переменная 1 - включаем светодиод и запускаем подпрограмму опроса шлейфов и включения/выключения пищалки.
Если переменная 0 - гасим все и опрашиваем только кнопку.

Для того чтобы пищалка (при срабатывании шлейфа) замолкала только после снятия с "охраны" можно ввести еще одну такую переменную.
По сигналу шлейфа писать туда 1 (пищалка пищит при значении переменной 1) , а по нажатию кнопки писать 0 (пищалка затыкается).

Всю эту конструкцию можно построить на одних if else.

На чистом СИ не пишу , так что исходник набросать не смогу.
 
 Top
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



Нууу что то получилось, но почему то микроконтроллер греется! Может я что то не то настроил? или это нормально?
 
 Top
nestandart Супермодератор Post Id



Супер-модератор


Сообщений всего: 1490
Дата рег-ции: Сент. 2010  



Вы дали напругу питание (или на один из портов) самого МК более 6 вольт.
Или (вероятнее) превысили максимальный ток пина МК (40мА) , подключив к нему мощную нагрузку.
 
 Top
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



Вот схема подключения
- когда шлейфы замкнутые то светодиоды не светятся и тогда микроконтроллер греется
- когда шлейфы разомкнутые то светодиоды светятся и мега8 не греется
- кнопка ставит под охрану
Прикреплено изображение
схема.png

 
 Top
nestandart Супермодератор Post Id



Супер-модератор


Сообщений всего: 1490
Дата рег-ции: Сент. 2010  



Что за датчки на шлейфах ? как собраны шлейфы ? какой сигнал с них идет ?

Или шлейфы , в данном случае , это просто кнопки ?

Возможно ваши входы сконфигурированы программно как выходы.
Вариантов много. Нужно мерить что идет со шлейфов.

Первая же ошибка - нет подтяжек на входах шлейфов.
 
 Top
Страниц (3): [1] 2 3 »
« С чего начать? »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru