Кресты / Говнокод #26311 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
#include "Budilnic.h" //описание библиотеки Будильник

#define Bud_out 4     //на пин d4 выводится 1 если сработал любой будильник
#define Vibro_gen 9   //на пин d9 выводятся импульсы для подключения вибромотора
#define Buz 5         //на пин d5 подключена Пищалка с генератором 
#define Stop_button 8 //на пин d8 подключена кнопка,подтянута на +5

Budilnic:: Budilnic()
{ //описываем пустой конструктор, он всегда вызывается при создании экземпляра класса

}

void Budilnic:: initialReading () //говорим что эта функция пренадлежит классу Budilnic
{ //при включении из EEPROM зачитываются сохраненные значения
SuH=Eprom_read(20,0); SuM=Eprom_read(21,0); SuF=Eprom_read(22,0); 
MoH=Eprom_read(23,0); MoM=Eprom_read(24,0); MoF=Eprom_read(25,0); 
TuH=Eprom_read(26,0); TuM=Eprom_read(27,0); TuF=Eprom_read(28,0); 
WeH=Eprom_read(29,0); WeM=Eprom_read(30,0); WeF=Eprom_read(31,0);
ThH=Eprom_read(32,0); ThM=Eprom_read(33,0); ThF=Eprom_read(34,0);
FrH=Eprom_read(35,0); FrM=Eprom_read(36,0); FrF=Eprom_read(37,0);
SaH=Eprom_read(38,0); SaM=Eprom_read(39,0); SaF=Eprom_read(40,0);
//зачитываем пользовательскую настройку SetAlarmTimer
budilnic.SetAlarmTimer = EEPROM_uint_read(41,10); //читаем из  EEPROM 2 бита адр.41 и адр.42. Начальная установка 10

pinMode(Bud_out, OUTPUT);//Сигнальный пин будильника на выход
pinMode(Stop_button, INPUT);//Кнопка Stop работает на вход
pinMode(Buz, OUTPUT); //Пишалка на выход
pinMode(Vibro_gen, OUTPUT); //Пин вибромотора на выход
}

void Budilnic:: check_Data ()  // передаем значения на проверку
{
check_Parametrs(SuF,SuH,SuM,0); //проверить флаг,часы,минуты Восскресенье
check_Parametrs(MoF,MoH,MoM,1); //проверить флаг,часы,минуты Понедельник
check_Parametrs(TuF,TuH,TuM,2); //проверить флаг,часы,минуты Вторник
check_Parametrs(WeF,WeH,WeM,3); //проверить флаг,часы,минуты Среда
check_Parametrs(ThF,ThH,ThM,4); //проверить флаг,часы,минуты Четверг
check_Parametrs(FrF,FrH,FrM,5); //проверить флаг,часы,минуты Пятница
check_Parametrs(SaF,SaH,SaM,6); //проверить флаг,часы,минуты Суббота
}

void Budilnic:: check_Parametrs (unsigned char F,unsigned char H,unsigned char M,unsigned char DAY)
{
if(F==1)
   { //если будильник включен
     if(DAY==time.weekday)
      { //если совпал день недели
            if(H==time.hours) 
             { //если часы совпали
                  if(M==time.minutes)
                    { //если минуты совпали
                       if(time.seconds==0)
                           {//если секунды по нулям
                             AlarmTimer=0; //обнуляем таймер
                             AlarmFlag=1; //поднимаем флаг, есть срабатывание
                            
                           }}}}}
}//конец функции проверки будильников


void Budilnic :: LetsGo()
{//функция постоянно вызывается из майна
 
 if(AlarmFlag==1) 
 { //если зарегистрированно срабатывание
  digitalWrite(Bud_out, HIGH);   // зажигаем светодиод
  Misic=1; //включаем воспроизведение мелодии
  
  if( (AlarmTimer/2)==SetAlarmTimer ) //если таймер досчитал до заданного времени
  { //выключаем будильник
    digitalWrite(Bud_out, LOW);   // гасим светодиод
    Misic=0; //отключить музыку
    AlarmFlag=0; // и опускаем флаг  
  }
  
   if(digitalRead(Stop_button)==LOW) //если нажата кнопка STOP
        { 
           digitalWrite(Bud_out, LOW);   // гасим светодиод 
           Misic=0; //отключить музыку
           AlarmFlag=0; // и опускаем флаг
        } //конец проверки кнопки STOP

 }//конец проверки флага срабатывания


 if(Misic)
    {
//------------управляем импульсами на d9------------------------------
if(VibroTimer<10) digitalWrite(Vibro_gen, LOW);  // Снять импульс d9 
else digitalWrite(Vibro_gen, HIGH);   //Подать импульс на d9
//-------------------сдесь проиррываем мелодию------------------------
if((BuzTimer>=0) & (BuzTimer<2))  Buzer=1;   // пик 0.1
if((BuzTimer>=2) & (BuzTimer<4))  Buzer=0;   // пауза        2.3

if((BuzTimer>=4) & (BuzTimer<6))  Buzer=1;   // пик 
if((BuzTimer>=6) & (BuzTimer<8))  Buzer=0;   // пауза

if((BuzTimer>=8) & (BuzTimer<10))  Buzer=1;  // пик
if((BuzTimer>=10) & (BuzTimer<20))  Buzer=0; // пауза
//--------второй куплет

это пиздец, товарищи

Запостил: pashaluk31 pashaluk31, (Updated )

Комментарии (19) RSS

  • ))школьник писал?

    я в детсве лет тоже на бейсике такие штуки делал
    Ответить
    • как ни странно, чувак 40 лет от роду))))
      заказчик как только это увидел, сразу уволил его к хуям
      Ответить
      • Тогда рискну предположить, что программирование изучать он начал в 39 лет
        Ответить
    • Кстати, очень сильно похоже, что перед этим программист писал именно на Бейсике.
      Ответить
    • Чего-нибудь эдакого, с шоблонами и констэкспрами.
      Ответить
  • В кресты не завезли логические выражения ? Нахер 5 вложенных ифов ?
    Ответить
  • Вы не понимаете. Это commentary driven development. Сначала писал комментарии-заглушки, потом в этих местах рабочий код.

    Но, в общем, на Цэ Перемога Перемога ему ещё рановато, сначала за Букварь.
    Ответить
  • > pinMode(Vibro_gen, OUTPUT); //Пин вибромотора на выход
    Это вибратор с функцией будильника?
    Ответить
    • Я уже месяц дрочу электробритвой, ласкаю под уздечкой или засовываю ее себе в анал.
      Ответить
        • Самсунжик, Стертор.
          Зсовывать в жопу бритву, произведенную в СССР, было бы как минимум, кощунством. На такое только Сёма горазд.
          Ответить
    • делали будильник для глухих, которые узнавали о срабатывании по вибрации
      Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8