мигалка на Pic12f629
мигалка на Pic12f629
здравствуйте! есть такой вопрос:
имеем 2 светодиода и 2 кнопки.
При нажатии на кнопку 1 светодиод 1 начинает мигать 50 раз,при этом нужно прервать мигание второго светодиода
при нажатии на кнопку 2 светодиод 2 начинает мигать 50 раз,при этом нужно прервать мигание первого светодиода
тоесть если мигает один светодиод при нажатии на кнгопку его нужно погасить и запустить мигание вторым светодиодом,и наооборот
помогите пожалуйста с кодом
спасибо!
имеем 2 светодиода и 2 кнопки.
При нажатии на кнопку 1 светодиод 1 начинает мигать 50 раз,при этом нужно прервать мигание второго светодиода
при нажатии на кнопку 2 светодиод 2 начинает мигать 50 раз,при этом нужно прервать мигание первого светодиода
тоесть если мигает один светодиод при нажатии на кнгопку его нужно погасить и запустить мигание вторым светодиодом,и наооборот
помогите пожалуйста с кодом
спасибо!
- Вложения
-
- shema.rar
- (12.11 КБ) 439 скачиваний
- Реклама
-
Taska
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Вт фев 09, 2010 13:37:50
- Откуда: Украина
Re: мигалка на Pic12f629
А сам, что не можешь написать?
Светодиод мигает с какой частотой?
Светодиод мигает с какой частотой?
Re: мигалка на Pic12f629
Раз нарисовал в proteuse, то выкладывай весь проект со своим кодом.
Re: мигалка на Pic12f629
пробуй
:100000002728A301A200FF30A207031CA307031C9B
:1000100023280330A100DF300F200328A101E83E90
:10002000A000A109FC30031C1828A00703181528FC
:10003000A0070000A10F152820181E28A01C2228A8
:100040000000222808008313831203130800830191
:10005000073099000C30831685008312851D3128E6
:100060003520051D34285E202D288510A40132304E
:10007000240203185D280514A50106302502031883
:100080004A280A300120051D46282D280130A507E1
:10009000031C3D280510A501063025020318592828
:1000A0000A300120051D55282D280130A507031C05
:1000B0004C280130A407031C372808000510A401B0
:1000C00032302402031886288514A5010630250243
:1000D000031873280A300120851D6F282D28013050
:1000E000A507031C66288510A50106302502031804
:1000F00082280A300120851D7E282D280130A50781
:10010000031C75280130A407031C602808008728F9
:02400E000000B0
:00000001FF
:100000002728A301A200FF30A207031CA307031C9B
:1000100023280330A100DF300F200328A101E83E90
:10002000A000A109FC30031C1828A00703181528FC
:10003000A0070000A10F152820181E28A01C2228A8
:100040000000222808008313831203130800830191
:10005000073099000C30831685008312851D3128E6
:100060003520051D34285E202D288510A40132304E
:10007000240203185D280514A50106302502031883
:100080004A280A300120051D46282D280130A507E1
:10009000031C3D280510A501063025020318592828
:1000A0000A300120051D55282D280130A507031C05
:1000B0004C280130A407031C372808000510A401B0
:1000C00032302402031886288514A5010630250243
:1000D000031873280A300120851D6F282D28013050
:1000E000A507031C66288510A50106302502031804
:1000F00082280A300120851D7E282D280130A50781
:10010000031C75280130A407031C602808008728F9
:02400E000000B0
:00000001FF
Re: мигалка на Pic12f629
код работает,но хотелось бы чтобы мигал не 50 раз ,а 4 с частотой автомобильного поворотника
и исходник
и исходник
- Реклама
Re: мигалка на Pic12f629
Может следует подумать перед тем как писать?светодиод 1 начинает мигать 50 раз,
без него контрольную не примут.и исходник
Re: мигалка на Pic12f629
Протон Бейсмк, программа проста как 3 рубля, количество морганий и время горения и паузы - интуитивно и уже самостоятельно ( переменные k, a). С прерываниями изящнее, но какбыавтор ногу сброса задействовал, а ей начхать на изменение входного уровня.
Форматирование слетело и прога выглядит... некрасиво.
Код: Выделить всё
Device 12F629
Declare Reminders = OFF
Xtal = 4
Config INTOSCIO, CP_OFF, CPD_OFF, PWRTE_On, MCLRE_OFF, WDT_ON
CMCON = 7
TRISIO =%00001100
Dim k As Byte
Dim a As Byte
'*******************************
main:
If GPIO.3 = 1 Then GoSub led1
If GPIO.2 = 1 Then GoSub led2
GoTo main
'*******************************
led1:
GPIO.1 = 0
For k = 0 To 49
GPIO.0 = 1
For a = 0 To 5
DelayMS 10
If GPIO.2 = 1 Then GoTo main
Next a
GPIO.0 = 0
For a = 0 To 5
DelayMS 10
If GPIO.2 = 1 Then GoTo main
Next a
Next k
Return
'*******************************
led2:
GPIO.0 = 0
For k = 0 To 49
GPIO.1 = 1
For a = 0 To 5
DelayMS 10
If GPIO.3 = 1 Then GoTo main
Next a
GPIO.1 = 0
For a = 0 To 5
DelayMS 10
If GPIO.3 = 1 Then GoTo main
Next a
Next k
Return
'*******************************
EndRe: мигалка на Pic12f629
а на си нету?
Re: мигалка на Pic12f629
На С нет, я не религиозен. Мне пока для PIC12,16,18 и бэйсика хватает.
Re: мигалка на Pic12f629
В железе работать не будет.
Re: мигалка на Pic12f629
Смотря как кнопки давить:-P. Прога написана по задаче, не более, реальных ограничений я не ставил., да и писал 10 минут.
Re: мигалка на Pic12f629
На барсике другого и не получится . Да и не прога это , так кусок быдлокода...mnbv писал(а): и прога выглядит... некрасиво.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: мигалка на Pic12f629
Для этого есть тэги.mnbv писал(а):Форматирование слетело и прога выглядит... некрасиво.
Ваш пост с кодом поправил.
Не вижу разницы, если Вы ни того и ни этого языка не знаетеvovik15 писал(а):а на си нету?
А каким боком нога ресет относится к прерываниям ?mnbv писал(а):С прерываниями изящнее, но какбыавтор ногу сброса задействовал, а ей начхать на изменение входного уровня.
Re: мигалка на Pic12f629
Alex, спасибо.
У 629 есть прерывание по изменению логического уровня на входе А0...А5, но кроме А3, ноги сброса - она не ставит флага прерывания.
У 629 есть прерывание по изменению логического уровня на входе А0...А5, но кроме А3, ноги сброса - она не ставит флага прерывания.
Последний раз редактировалось mnbv Вт сен 24, 2013 20:09:42, всего редактировалось 1 раз.
Re: мигалка на Pic12f629
нет, вы ошибаетесь,си я немножко знаю,чуть чуть смогу подкоректировать
мне ждать код?
мне ждать код?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: мигалка на Pic12f629
Тогда ничего не понимаю. В сети полно примеров со всякими миганиями, кнопками и тому подобное... Берите и корректируйте под свою задачу.vovik15 писал(а):си я немножко знаю,чуть чуть смогу подкоректировать
А, вон о чём Вы. Понятно...mnbv писал(а):У 629 есть прерывание по изменению логического уровня на входе А0...А5, но кроме А3, ноги сброса - она не ставит флага прерывания.
Re: мигалка на Pic12f629
Прежде чем просить о помощи нужно самому что то сделать.мне ждать код?
Форуму ждать код?
Re: мигалка на Pic12f629
написал я вод такой код,но он не работает
Код: Выделить всё
#include <pic.h>
// pic12f629
__CONFIG (INTIO & UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTDIS);
// === используемые функции
void podgot (void); // подготовка МК
void Left (void);
void delay (void);
void main (void){
podgot();
while(1){
Left();
GPIO0=1;
//if(GPIO2==1) L(); //L
//if(GPIO3==1) L(); //R
//else GPIO0=0;
} //конец бесконечного цикла
}
// === подготовка МК
void podgot (void)
{
INTCON = 0; // запрет прерываний
CMCON = 7; // отключаем аналоговый компаратор
TRISIO = 0b001100;
GPIO = 0; // чистим
GPPU = 0; // все подтягивающие R: 1 - откл., 0 - вкл.
}
void Left (void)
{
unsigned char x;
x=0;
while(x<5)
{
GPIO1=1;
delay();
GPIO1=0;
delay();
x++;
}
}
void delay (void)
{
unsigned int delay = 999;
while (delay-->0);
} - Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: мигалка на Pic12f629
"не работает" - это как ?
Я так понял, Вы делаете что-то типа ленивого поворотника - щёлкнул ручкой один раз и поворотник сам мигает ?
Я так понял, Вы делаете что-то типа ленивого поворотника - щёлкнул ручкой один раз и поворотник сам мигает ?
Re: мигалка на Pic12f629
да,я делаю поворотник


