Да понимаю я что к Си - но в Пасе хоть знакомый синтаксис, уж не выпускалиб тогда его вообще может уже бы и начал изучать,а так уж очень заманчиво много знакомого.
Ну уж не обессутьте как надаем просто скажите я пойму.
Если не затруднит может переведете сей код под PIC12F629 на Пас уж простите за наглость.
Но мне так разобраться проще.
Цитата:
unsigned short counter, oldstate, step;
void interrupt(){ // подпрограмма обработки прерывания
if(INTCON.T0IF){
counter++;
if (counter>1){
PORTB=~PORTB&0x0f|step;
counter=0;
}
INTCON.T0IF=0;
}
}// interrupt
void Init(){ // подпрограмма начальной инициализации
CMCON=7; // все входы как цифровые, компараторы отключены
TRISA=0xff; // настроили выводы PORTA на вход
TRISB=0; // настроили выводы PORTB на вывод
OPTION_REG = 0x87; // настройка TMR0, прерывания будут каждые 66,304 ms
INTCON.T0IE=1; // разрешили прерывания по переполнению TMR0
INTCON.GIE=1; // разрешили все прерывания
step=0;
oldstate=0;
}// Init
void main(){
Init();
while(1){ // организовали вечный цикл
if (Button(&PORTA, 0, 1, 0))
oldstate = 1;
if (oldstate && Button(&PORTA, 0, 1, 1)){ // ждем отпускания кнопки (переход от 0 к 1)
step=~step&0x80;
PORTB|=step;
oldstate = 0;
}
}
}//~
|
Если уж не весь код то хоть первую часть до While. Как я понял код разбит на 2 части первая подпрограмма в которой можно делать условия выполнения, а вторая бесконечный цикл где постоянно выполняется что-то. но мне не понятно контроллер все время "заглядывает" с начала подпрограммы или нет?
Допустим в первой части где эти самые прерывания, стоят - переменные и команды, например нажатия кнопок или изменения чего нибудь а как эти изменения будут попадать в While ведь он я понял выполняется сам по себе. Или наоборот в While все переменные и команды, например нажатия кнопок или изменения чего нибудь?
Разьясните если не напряжно.