Страница 1 из 2
мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 12:35:27
vovik15
здравствуйте! есть такой вопрос:
имеем 2 светодиода и 2 кнопки.
При нажатии на кнопку 1 светодиод 1 начинает мигать 50 раз,при этом нужно прервать мигание второго светодиода
при нажатии на кнопку 2 светодиод 2 начинает мигать 50 раз,при этом нужно прервать мигание первого светодиода
тоесть если мигает один светодиод при нажатии на кнгопку его нужно погасить и запустить мигание вторым светодиодом,и наооборот
помогите пожалуйста с кодом
спасибо!
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 12:49:56
Taska
А сам, что не можешь написать?
Светодиод мигает с какой частотой?
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 14:21:16
otest
Раз нарисовал в proteuse, то выкладывай весь проект со своим кодом.
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 15:23:47
mnbv
пробуй
:100000002728A301A200FF30A207031CA307031C9B
:1000100023280330A100DF300F200328A101E83E90
:10002000A000A109FC30031C1828A00703181528FC
:10003000A0070000A10F152820181E28A01C2228A8
:100040000000222808008313831203130800830191
:10005000073099000C30831685008312851D3128E6
:100060003520051D34285E202D288510A40132304E
:10007000240203185D280514A50106302502031883
:100080004A280A300120051D46282D280130A507E1
:10009000031C3D280510A501063025020318592828
:1000A0000A300120051D55282D280130A507031C05
:1000B0004C280130A407031C372808000510A401B0
:1000C00032302402031886288514A5010630250243
:1000D000031873280A300120851D6F282D28013050
:1000E000A507031C66288510A50106302502031804
:1000F00082280A300120851D7E282D280130A50781
:10010000031C75280130A407031C602808008728F9
:02400E000000B0
:00000001FF
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 18:00:57
vovik15
код работает,но хотелось бы чтобы мигал не 50 раз ,а 4 с частотой автомобильного поворотника
и исходник
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 18:15:08
otest
светодиод 1 начинает мигать 50 раз,
Может следует подумать перед тем как писать?
и исходник
без него контрольную не примут.
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 18:34:25
mnbv
Протон Бейсмк, программа проста как 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
'*******************************
End
Форматирование слетело и прога выглядит... некрасиво.
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 18:44:43
vovik15
а на си нету?
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 18:54:40
mnbv
На С нет, я не религиозен. Мне пока для PIC12,16,18 и бэйсика хватает.
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 19:04:00
otest
В железе работать не будет.
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 19:15:04
mnbv
Смотря как кнопки давить:-P. Прога написана по задаче, не более, реальных ограничений я не ставил., да и писал 10 минут.
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 19:27:57
dosikus
mnbv писал(а): и прога выглядит... некрасиво.
На барсике другого и не получится . Да и не прога это , так кусок быдлокода...
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 19:49:57
Аlex
mnbv писал(а):Форматирование слетело и прога выглядит... некрасиво.
Для этого есть тэги.
Ваш пост с кодом поправил.
vovik15 писал(а):а на си нету?
Не вижу разницы, если Вы ни того и ни этого языка не знаете
mnbv писал(а):С прерываниями изящнее, но какбыавтор ногу сброса задействовал, а ей начхать на изменение входного уровня.
А каким боком нога ресет относится к прерываниям ?

Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 19:57:02
mnbv
Alex, спасибо.
У 629 есть прерывание по изменению логического уровня на входе А0...А5, но кроме А3, ноги сброса - она не ставит флага прерывания.
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 20:01:37
vovik15
нет, вы ошибаетесь,си я немножко знаю,чуть чуть смогу подкоректировать
мне ждать код?
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 20:13:53
Аlex
vovik15 писал(а):си я немножко знаю,чуть чуть смогу подкоректировать
Тогда ничего не понимаю. В сети полно примеров со всякими миганиями, кнопками и тому подобное... Берите и корректируйте под свою задачу.
mnbv писал(а):У 629 есть прерывание по изменению логического уровня на входе А0...А5, но кроме А3, ноги сброса - она не ставит флага прерывания.
А, вон о чём Вы. Понятно...
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 20:18:27
otest
мне ждать код?
Прежде чем просить о помощи нужно самому что то сделать.
Форуму ждать код?
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 21:08:01
vovik15
написал я вод такой код,но он не работает
Код: Выделить всё
#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);
}
Re: мигалка на Pic12f629
Добавлено: Вт сен 24, 2013 21:30:35
Аlex
"не работает" - это как ?
Я так понял, Вы делаете что-то типа ленивого поворотника - щёлкнул ручкой один раз и поворотник сам мигает ?
Re: мигалка на Pic12f629
Добавлено: Ср сен 25, 2013 06:44:49
vovik15
да,я делаю поворотник