с индексом 16F84A 20P через адаптер USB-COM и говеный кит NV9215
с индексом 16F84A 20P через адаптер USB-COM и говеный кит NV9215
Можно компактнее:amd9800 писал(а):
В обработке нажатия кнопки пишем простой код.
Код: Выделить всё
mode++; if (mode>3) {mode=0;}
Код: Выделить всё
mode++;
mode &= 0x03;
Код: Выделить всё
while(1)
{
if(!GPIO_ReadInputPin(GPIOA, GPIO_PIN_1) & button_state)//if button is pressed
{
while(pause--)
{
nop();
}
pause = 1000;
if(!GPIO_ReadInputPin(GPIOA, GPIO_PIN_1) & button_state)
{
while(GPIO_ReadInputPin(GPIOA, GPIO_PIN_1));
while(pause--)
{
nop();
}
pause = 1000;
state = !state;
button_state = 0;
}
}
if(state)
{
while(delay--)
{
nop();
}
delay = 10000;
GPIO_WriteReverse(GPIOB, GPIO_PIN_5);
while(delay--)
{
nop();
}
delay = 10000;
GPIO_WriteReverse(GPIOB, GPIO_PIN_5);
button_state = 1;
}
else
{
GPIO_WriteLow(GPIOB, GPIO_PIN_5);
button_state = 1;
}
}
Код: Выделить всё
//после опроса button =1 - нажатая кнопка, button = 0 - отпущенная
if (button) {statButton = ((statButton<<1) + 1) & 0x3;} else {statButton = (statButton<<1) & 0x3;}
switch (statButton) {
case 1:
if (timerButton> N) { исполнение кода при нажатой кнопке после времени N}
timerButton = 0;
case 2:
if (timerButton> N) { исполнение кода при отпущенной кнопке после времени N}
timerButton = 0;
default:
if (timerButton<TIMEOUT) {timerButton++;}
}
проблема может быть именно в переходнике. надо бы попробовать на настоящем сом порте, я пробовал когда-то с проллификом, похожая байда получалась. потом в большинства программ-шеллов есть движок задержки, рядом с настройками. его можно подвигать. а еще можно поизучать материнку, иногда там есть потайной сом порт, только не выведен на разъем, одни ноги торчат. твой программатор именуется как JDMРатмир писал(а):Сегодня пробовал другие прошить....
