обработка прерываний - я получил «Ошибка деления» при выполнении кода c - PullRequest
0 голосов
/ 03 июля 2019
#include <stdio.h>
#include <dos.h>
#include<stdlib.h>

// подсчитывает частоты между выпуском первого и последующим вставлением второго символа,

volatile int stopper = 0;
volatile int index = 3;

// начинаем с самого высокого индекса, чтобы избежать разрушения стека

volatile int diff1[4] = {0,0,0,0}; 
volatile int diff2[4] = { 0,0,0,0 }; 
volatile int gotChar = 0;//to know in if I got in the same time new char 
volatile int secondW =0; //to know if the first word ended void 
interrupt(*Int8save)(void);

 /////////////////////////////////////////////////////////////// 

void interrupt myhandle() {     
     inputFlag = 1;     
     if (index == 0 && secondW ==1)  { index = -1;  return; }   
     if (index == 0 && secondW == 0)
         { printf("\nNow AGAIN\n"); index =3;}
     if (secondW == 1 && index <2) { diff2[3 - index] = stopper; }  
     else if (index < 2) { diff1[3 -index] = stopper; }
     stopper = 0;
     Int8Save();
     if (index > 0)
            index--;
     while(gotChar == 0)stopper++;

// стоппер будет отсчитывать время между последним временем отпускания и нажатием на клавишу увеличения

     gotChar = 0;
 } 
...