мигалка на Pic12f629

Поклонники продукции Microchip Technology Inc тусуются тут.
mnbv
Грызет канифоль
Сообщения: 286
Зарегистрирован: Сб авг 03, 2013 16:01:29

Re: мигалка на Pic12f629

Сообщение mnbv »

У поворотника другой алгоритм и его функционал на PIC'е можно весомо дополнить. Но если задача формулируется только после многочисленных расспросов...
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: мигалка на Pic12f629

Сообщение Аlex »

vovik15 писал(а):да,я делаю поворотник
Значит мне пора на битву экстрасенсов :)))

http://forum.amadeus-project.com/index. ... topic=1239
Реклама
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: мигалка на Pic12f629

Сообщение vovik15 »

спасибо за помощь
сам все написал
mnbv
Грызет канифоль
Сообщения: 286
Зарегистрирован: Сб авг 03, 2013 16:01:29

Re: мигалка на Pic12f629

Сообщение mnbv »

Это о ком? "На повороте не включают поворотник моргают 4 раза. Так и узнают друг друга."
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: мигалка на Pic12f629

Сообщение Аlex »

vovik15 писал(а):сам все написал
Ну поделитесь тогда кодом, нельзя так вот ниочём тему заканчивать. :)
Реклама
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: мигалка на Pic12f629

Сообщение vovik15 »

вот, выкладываю код и проект в протеусе
помогите его доработать
нужно:
1 добавить режим движения задним ходом,чтобы мигали оба поворотника сразу
2 если поворотник долго включен ,при его выключении они не мигали еще 5 раз

Код: Выделить всё

#include <pic.h>
// pic12f629

__CONFIG (INTIO & UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTDIS);
//конфигурация сигнальных линий
#define R GPIO2 //правый поворотник
#define L GPIO1 //левый поворотник

#define SR GPIO0 //сигнал от правого
#define SL GPIO3 //сигнал от левого

void delay_R (void);//функция задержки для правого поворотника
void delay_L (void);//функция задержки для левого  поворотника

void POV_R (void); //функция обработки правого поворотника
void POV_L (void); //функция обработки левого  поворотника

unsigned char flag_stop; //флаг для остановки мигания
unsigned int time; //время для задержки опроса клавиш


void main (void){ 
//конфигурируем контроллер
INTCON = 0; // запрет прерываний
CMCON  = 7; // отключаем аналоговый компаратор
TRISIO = 0b001001;//настройка направленя работы линий
GPIO = 0; // обнуляем линии
GPPU = 0; // выключаем подтягивающие резисторы

while(1){ // начало бесконечного цикла 

/*здесь проверяем включен ли поворот*/
if(SR==0) {time++;if(time>7000){time=0;POV_R();}}//и не реагируем на всякую Х....
if(SL==0) {time++;if(time>7000){time=0;POV_L();}}//и не реагируем на всякую Х....

} //конец бесконечного цикла
} //конец программы


/*функция обработки правого поворотника*/
void POV_R (void)
{
unsigned char x;//переменная для цикла
for (x=5;x>0;x--)
{ //цикл на 5 витков
R=1;//включаем правый
delay_R(); //пауза
if(flag_stop==1) {R=0; flag_stop=0; break;} //выключаем и завершаем цикл
R=0;//выключаем правый
delay_R();//пауза
if(flag_stop==1) {flag_stop=0; break;}//завершаем цикл
}//конец цикла
}//конец функции

/*функция обработки левого поворотника*/
void POV_L (void)
{
unsigned char x;
for (x=5;x>0;x--)
{
L=1;
delay_L();
if(flag_stop==1) {L=0;flag_stop=0; break;}
L=0;
delay_L();
if(flag_stop==1) {flag_stop=0; break;}
}//конец цикла
}//конец функции


//функция задержки для правого поворотника*/
void delay_R (void)
{
unsigned int tmp;//временная переменная
tmp=15000;//устанавливаем значение
do{tmp--;
if(SL==0) {flag_stop=1;break;} //завершаем цикл если нажата ПРОТИВОПОЛОЖНАЯ КЛАВИША

} while(tmp>0);
}

//функция задержки для левого поворотника*/
void delay_L (void)
{
unsigned int tmp;
tmp=15000;
do{tmp--;
if(SR==0) {flag_stop=1;break;}//завершаем цикл если нажата ПРОТИВОПОЛОЖНАЯ КЛАВИША
} while(tmp>0);
}

Вложения
pov.rar
(6.05 КБ) 247 скачиваний
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: мигалка на Pic12f629

Сообщение Аlex »

добавить режим движения задним ходом,чтобы мигали оба поворотника сразу
На сколько мне известно, для сигнализации заднего хода существуют спец. огни, а для мигания обоими поворотниками существует спец. кнопочка :)
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: мигалка на Pic12f629

Сообщение vovik15 »

ну что? этот код можно оптимизировать?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: мигалка на Pic12f629

Сообщение dosikus »

vovik15 писал(а):ну что? этот код можно оптимизировать?
Конечно можно, переписав заново ...

2.7 Запрещается полное цитирование предыдущего сообщения. Допускается цитирование только части сообщения, необходимой для смысловой связи с предыдущим сообщением.

Предусматриваются следующие виды наказаний за нарушение пунктов данных Правил: за нарушение: п 2.7 - Предупреждение. При повторном нарушении - бан на усмотрение модератора.
Последний раз редактировалось AlekseyEnergo Вт окт 01, 2013 13:51:59, всего редактировалось 1 раз.
Причина: .
Ответить

Вернуться в «PIC»