управление
управление
ну как вы уже знаете я полный профан в програмировании мк
особенно в написании программ
ну попробую вдруг подскажут
значит такая задача
мк атини 2313 (их у меня много)
надо сделать так чтобы при попадании на один из потров(любой) минуса
на другом порте появлялась 1 на 15 секунд
и даже при пропадании минуса единичка не пропадала
пишу в баскоме
прошиваю в атмеле
спасибо заранее
лучше сделать без правки фьюзов
15 секунд время произвольное, примерное
особенно в написании программ
ну попробую вдруг подскажут
значит такая задача
мк атини 2313 (их у меня много)
надо сделать так чтобы при попадании на один из потров(любой) минуса
на другом порте появлялась 1 на 15 секунд
и даже при пропадании минуса единичка не пропадала
пишу в баскоме
прошиваю в атмеле
спасибо заранее
лучше сделать без правки фьюзов
15 секунд время произвольное, примерное
- Реклама
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: управление
Что есть "минус"?
Со всем остальным проще - моностабильный элемент описываете.
Я бы пошел по такому пути:
переменная (регистр) в которой указывается состояние 0-не было подачи сиганла, 1 - была подача сигнала.
затем N переменных под каждый бит порта (портов) в которых указываем время работы именно ээтого бита порта.
Ну далее тупое сравнение и выключение по превышению порога.
Со всем остальным проще - моностабильный элемент описываете.
Я бы пошел по такому пути:
переменная (регистр) в которой указывается состояние 0-не было подачи сиганла, 1 - была подача сигнала.
затем N переменных под каждый бит порта (портов) в которых указываем время работы именно ээтого бита порта.
Ну далее тупое сравнение и выключение по превышению порога.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: управление
нормально
жаль только я в этом ничего не понял
мне прошше когда это будет выглядеть в виде программы
минус-это кратковременное попадание минуса на порт
ну я не знаю как еше сказать
я думал через ресет сделать
но не получается
потому что минус(естественно через резистор 4.7 ком) может попадать несколько раз
но надо чтобы за время выполнения программы 15 секунд
мк больше не реагировал на порт на который попадает минус
жаль только я в этом ничего не понял
мне прошше когда это будет выглядеть в виде программы
минус-это кратковременное попадание минуса на порт
ну я не знаю как еше сказать
я думал через ресет сделать
но не получается
потому что минус(естественно через резистор 4.7 ком) может попадать несколько раз
но надо чтобы за время выполнения программы 15 секунд
мк больше не реагировал на порт на который попадает минус
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: управление
Какой такой минус? Может все-таки логический ноль, минус на МК подавать не стоит...
В главном цикле проверяете порт, если там вдруг появился ваш "минус" включаете "1" в другом порте, делаете задержку 15 сек и выключаете "1". В чем сложность то?
В главном цикле проверяете порт, если там вдруг появился ваш "минус" включаете "1" в другом порте, делаете задержку 15 сек и выключаете "1". В чем сложность то?
Re: управление
сложность в том что я не знаю как это написать на программном языке
- Реклама
Re: управление
а как это понимать ?олежек писал(а):сложность в том что я не знаю как это написать на программном языке
пишу в баскоме
Re: управление
сложность в том что я не знаю как это написать на программном языке
Если время "так себе, примерно 15 сек.", да и с микроконтроллерами и программированием, мягко говоря, "не очень", тогда может на ТТЛ/КМОП-рассыпухе или одновибраторах сделать...
ЗЫ: Помогают тут обычно советом, код за вас писать никто не будет.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: управление
$regfile = «atini 2313.dat» 'говорим компилятору что у нас мега8
$crystal = 8000000
Config Portb.1 = Output ' конфигурируем порт B.1 как выход
Config Portd.1 = Input ' конфигурируем порт B.1 как вход
Do ' начало бесконечного цикла
Set Portb.0 'подключаем Portb.1 к положительному выводу источника питания
Waitms 500 'ждем пол секунды
Reset Portb.0 'подключаем Portb.1 к отрицательному выводу источника питания
Loop
как сюда кнопку подключить? и включить внутренний резистор
пожалуйста
$crystal = 8000000
Config Portb.1 = Output ' конфигурируем порт B.1 как выход
Config Portd.1 = Input ' конфигурируем порт B.1 как вход
Do ' начало бесконечного цикла
Set Portb.0 'подключаем Portb.1 к положительному выводу источника питания
Waitms 500 'ждем пол секунды
Reset Portb.0 'подключаем Portb.1 к отрицательному выводу источника питания
Loop
как сюда кнопку подключить? и включить внутренний резистор
пожалуйста
- -==MAXCELERON==-
- Встал на лапы
- Сообщения: 96
- Зарегистрирован: Сб авг 15, 2009 07:31:56
- Откуда: г. Кемерово
Re: управление
незнаю как в баскоме, а в winavr будет так:
Вот так все просто 
Код: Выделить всё
#include <avr/interrupt.h>
#include <util/delay.h>
#define F_CPU 8000000UL
int main(void){ //Главная функция
DDRC = 0xff; делаем весь порт С - выходом
PORTD = 0xff; подаем на порт D подтяжку
while(1){ зацикливаем
проверяем порт D
if (PORTD != 0xff){ если хоть на одном из выводов порта D появится 0
PORTC = 0xff; то подаем на все выводы порта C - 1
_delay_ms (15000); ждем 15000 мсек
PORTC = 0x00; обнуляем порт С
}
и опять заново проверяем, что там у нас с портом D
}
} //********************************************** Конец главной функции
Re: управление
ну все правильно
толко вместо порта с порт в
и как бы это в васкоме
я не умею в winavr компилировать
толко вместо порта с порт в
и как бы это в васкоме
я не умею в winavr компилировать
- РадиоЛоматель
- Мудрый кот
- Сообщения: 1733
- Зарегистрирован: Чт авг 21, 2008 22:03:30
- Откуда: Одесса(Украина)
- Контактная информация:
Re: управление
Я, конечно, не знаю всех требований автора, но так делать не стоит, потому что если импульс прийдет во время задржки 15 секунд, на него никто не обратит внимание. К тому же, если он будет крайне коротким (примерно с команду перехода длительностью) он тоже будет пропущен. Значительно лучше сделать через прерывания и таймеры, но понятно, что это сложновато для автора.-==MAXCELERON==- писал(а):незнаю как в баскоме, а в winavr будет так:
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Люблю Си...
Re: управление
именно так и надо
чтобы при включении порта вывода вход игнорировался полностью
пока не пройдет 15 сек
потом снова проверяет порт входа
все правильно только как мне в васкоме написать
чтобы при включении порта вывода вход игнорировался полностью
пока не пройдет 15 сек
потом снова проверяет порт входа
все правильно только как мне в васкоме написать
Re: управление
чего то у меня ошибки пишет по 1,2 и 7 строке
пытаюсь откомпилировать и зашить через авр студия 4
пытаюсь откомпилировать и зашить через авр студия 4
- -==MAXCELERON==-
- Встал на лапы
- Сообщения: 96
- Зарегистрирован: Сб авг 15, 2009 07:31:56
- Откуда: г. Кемерово
Re: управление
олежек писал(а):чего то у меня ошибки пишет по 1,2 и 7 строке
пытаюсь откомпилировать и зашить через авр студия 4
- -==MAXCELERON==-
- Встал на лапы
- Сообщения: 96
- Зарегистрирован: Сб авг 15, 2009 07:31:56
- Откуда: г. Кемерово
Re: управление
чего там не уметь tools / make allолежек писал(а): я не умею в winavr компилировать
Re: управление
ну правильно
только hex не выходит
а програматор не подключается к вин авр
надо паять 6 проводков и через ком порт шить
програматор у меня пишет в авр студии hex файлы
програматор скт 500 через усб порт
только hex не выходит
а програматор не подключается к вин авр
надо паять 6 проводков и через ком порт шить
програматор у меня пишет в авр студии hex файлы
програматор скт 500 через усб порт
- -==MAXCELERON==-
- Встал на лапы
- Сообщения: 96
- Зарегистрирован: Сб авг 15, 2009 07:31:56
- Откуда: г. Кемерово
Re: управление
все там выходитолежек писал(а):ну правильно
только hex не выходит
если что вот hex
- Вложения
-
- Архив ZIP - WinRAR.zip
- (262 байт) 188 скачиваний
Re: управление
$regfile = «atini 2313.dat» 'говорим компилятору что у нас мега8
$crystal = 8000000
Config Portb.1 = Output ' конфигурируем порт B.1 как выход
Config Portd.1 = Input ' конфигурируем порт B.1 как выход
Do
If Portd.1 = 0 Then ' УСЛОВИЕ - если на 2-й ножке порта С низкий логический уровень то...
Set Portb.1 'подключаем Portb.1 к положительному выводу источника питания
Waitms 500 'ждем пол секунды
Reset Portb.1
Else ' в противном случае...
Portb.0 = 0 ' устанавливаем на ножке 0 порта В низкий логический уровень (светодиод не горит)
End If'конец условия
Loop
End ' начало бесконечного цикла
вот так получится или нет?
на коментарии внимания не обрашайте
$crystal = 8000000
Config Portb.1 = Output ' конфигурируем порт B.1 как выход
Config Portd.1 = Input ' конфигурируем порт B.1 как выход
Do
If Portd.1 = 0 Then ' УСЛОВИЕ - если на 2-й ножке порта С низкий логический уровень то...
Set Portb.1 'подключаем Portb.1 к положительному выводу источника питания
Waitms 500 'ждем пол секунды
Reset Portb.1
Else ' в противном случае...
Portb.0 = 0 ' устанавливаем на ножке 0 порта В низкий логический уровень (светодиод не горит)
End If'конец условия
Loop
End ' начало бесконечного цикла
вот так получится или нет?
на коментарии внимания не обрашайте
Re: управление
спасибо за файл-==MAXCELERON==- писал(а):все там выходитолежек писал(а):ну правильно
только hex не выходит
если что вот hex
только время еше не подобрано
а с hex мне уже вообше ничего не сделать
Re: управление
$regfile = «atini 2313.dat» 'говорим компилятору что у нас мега8
$crystal = 8000000
Config Portb.1 = Output ' конфигурируем порт B.1 как выход
Config Portd.1 = Input ' конфигурируем порт B.1 как выход
Do
If Portd.1 = 0 Then ' УСЛОВИЕ - если на 2-й ножке порта С низкий логический уровень то...
Portb.1=1 'подключаем Portb.1 к положительному выводу источника питания
Waitms 500 'ждем пол секунды
Portb.1=0
Else ' в противном случае...
Portb.0 = 0 ' устанавливаем на ножке 0 порта В низкий логический уровень (светодиод не горит)
End If'конец условия
Loop
End ' начало бесконечного цикла
вот так не получилось
светодиод горит постоянно
$crystal = 8000000
Config Portb.1 = Output ' конфигурируем порт B.1 как выход
Config Portd.1 = Input ' конфигурируем порт B.1 как выход
Do
If Portd.1 = 0 Then ' УСЛОВИЕ - если на 2-й ножке порта С низкий логический уровень то...
Portb.1=1 'подключаем Portb.1 к положительному выводу источника питания
Waitms 500 'ждем пол секунды
Portb.1=0
Else ' в противном случае...
Portb.0 = 0 ' устанавливаем на ножке 0 порта В низкий логический уровень (светодиод не горит)
End If'конец условия
Loop
End ' начало бесконечного цикла
вот так не получилось
светодиод горит постоянно


