Advertisement
Guest User

Untitled

a guest
Jan 30th, 2015
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.45 KB | None | 0 0
  1. int main(void)
  2. {
  3.  
  4. int hoursdgt1[10]={0b00011111,0b00011110,0b00011101,0b00011100,0b00011011,0b00011010,0b00011001,0b00011000,0b00010111,0b00010110};
  5. int hoursdgt2[10]={0b00101111,0b00101110,0b00101101,0b00101100,0b00101011,0b00101010,0b00101001,0b00101000,0b00100111,0b00100110};
  6. int mindgt1[10]={0b01001111,0b01001110,0b01001101,0b01001100,0b01001011,0b01001010,0b01001001,0b01001000,0b01000111,0b01000110};
  7. int mindgt2[10]={0b10001111,0b10001110,0b10001101,0b10001100,0b10001011,0b10001010,0b10001001,0b10001000,0b10000111,0b10000110};
  8.  
  9.  
  10.  
  11.  
  12. //тестовая хуита, пусть будет
  13.  
  14.  
  15.  
  16.  
  17. int factor_digits(int num, int *digits, int limit) //Трамбуем все, что прийдется в массив.
  18. {
  19.     int digits_count = 0;
  20.  
  21.     // Отдельно обрабатываем ситуацию, когда у нас ноль
  22.     if (num == 0) {
  23.         digits[0] = 0;
  24.         return 1;
  25.     }
  26.  
  27.     // Безжалостно извлекаем цифры числа, пока они есть
  28.     while (num > 0 && limit) {
  29.         // Копируем очередную цифру в массив
  30.         digits[digits_count++] = num % 10;
  31.         // Переходим к следующей цифре
  32.         num /= 10;
  33.         // Уменьшаем допустимое количество оставшихся цифр
  34.         limit--;
  35.    }
  36.    return num ? 0 : digits_count;
  37. }
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. while(1){
  45.  
  46.      if (time == 600) { mins = mins+1; time=0; };
  47.      if (mins == 60) { hours = hours+1; mins=0; };
  48.      if (hours == 24) { hours = 0; };
  49.    
  50.         int temphours = hours*10;//костыль
  51.         int tempmins = mins*10;//костыль
  52.         int factored_number1[10]={0,0,0,0,0,0,0,0,0,0};  
  53.         int factored_number2[10]={0,0,0,0,0,0,0,0,0,0};  // Обнуляем массивы для результата
  54.         int factored_number_len;    // Количество цифр в числе
  55.         int i;
  56.    
  57.         // Выполняем разложение часов
  58.      factored_number_len = factor_digits(temphours, factored_number1, 10);
  59.  
  60.     // Срем часами в порт с делаем
  61.      PORTB = hoursdgt1[factored_number1[2]];
  62.      _delay_ms(100);
  63.      PORTB = hoursdgt2[factored_number1[1]];
  64.     _delay_ms(100);
  65.  
  66.  
  67.     // И минутами  
  68.      factored_number_len = factor_digits(tempmins, factored_number2, 10);
  69.  
  70.     PORTB = mindgt1[factored_number2[2]];
  71.     _delay_ms(100);
  72.     PORTB = mindgt2[factored_number2[1]];
  73.     _delay_ms(100);
  74.   }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement