мигалка на Pic12f629
Re: мигалка на Pic12f629
У поворотника другой алгоритм и его функционал на PIC'е можно весомо дополнить. Но если задача формулируется только после многочисленных расспросов...
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: мигалка на Pic12f629
Значит мне пора на битву экстрасенсовvovik15 писал(а):да,я делаю поворотник
http://forum.amadeus-project.com/index. ... topic=1239
Re: мигалка на Pic12f629
спасибо за помощь
сам все написал
сам все написал
Re: мигалка на Pic12f629
Это о ком? "На повороте не включают поворотник моргают 4 раза. Так и узнают друг друга."
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: мигалка на Pic12f629
Ну поделитесь тогда кодом, нельзя так вот ниочём тему заканчивать.vovik15 писал(а):сам все написал
- Реклама
Re: мигалка на Pic12f629
вот, выкладываю код и проект в протеусе
помогите его доработать
нужно:
1 добавить режим движения задним ходом,чтобы мигали оба поворотника сразу
2 если поворотник долго включен ,при его выключении они не мигали еще 5 раз
помогите его доработать
нужно:
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
На сколько мне известно, для сигнализации заднего хода существуют спец. огни, а для мигания обоими поворотниками существует спец. кнопочкадобавить режим движения задним ходом,чтобы мигали оба поворотника сразу
Re: мигалка на Pic12f629
ну что? этот код можно оптимизировать?
Re: мигалка на Pic12f629
Конечно можно, переписав заново ...vovik15 писал(а):ну что? этот код можно оптимизировать?
2.7 Запрещается полное цитирование предыдущего сообщения. Допускается цитирование только части сообщения, необходимой для смысловой связи с предыдущим сообщением.
Предусматриваются следующие виды наказаний за нарушение пунктов данных Правил: за нарушение: п 2.7 - Предупреждение. При повторном нарушении - бан на усмотрение модератора.
Последний раз редактировалось AlekseyEnergo Вт окт 01, 2013 13:51:59, всего редактировалось 1 раз.
Причина: .
Причина: .


