Subversion Repositories pentevo

Rev

Rev 601 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1. #include "_global.h"
  2. #include "_screen.h"
  3. #include "_ps2k.h"
  4.  
  5. //┌──────────────────────────────┐
  6. //│                              │
  7. //│           12345 Гц           │
  8. //│                              │
  9. //│ <>, <> - изменение частоты │
  10. //└──────────────────────────────┘
  11.  
  12. u16 t_beep_ptr, t_beep_delta;
  13.  
  14. const WIND_DESC wind_t_beep PROGMEM = { 8,8,32,6,0xdf,0x01 };
  15. #define p_wind_t_beep ((const P_WIND_DESC)&wind_t_beep)
  16.  
  17. const u16 t_beep_freqtab[] PROGMEM =
  18. {
  19.    75,   45,
  20.   107,   64,
  21.   152,   91,
  22.   214,  128,
  23.   302,  181,
  24.   427,  256,
  25.   604,  362,
  26.   854,  512,
  27.  1208,  724,
  28.  1709, 1024,
  29.  2417, 1448,
  30.  3418, 2048,
  31.  4833, 2896,
  32.  6836, 4096,
  33.  9668, 5793
  34. };
  35.  
  36. //-----------------------------------------------------------------------------
  37.  
  38. void Test_Beep(void)
  39. {
  40.  t_beep_ptr=0;
  41.  t_beep_delta=0;
  42.  scr_window(p_wind_t_beep);
  43.  scr_print_mlmsg(mlmsg_tbeep);
  44.  fpga_reg(INT_CONTROL,0b00000001);
  45.  u8 tbeep_n, go2;
  46.  tbeep_n=7;
  47.  do
  48.  {
  49.   go2=GO_READKEY;
  50.   scr_set_cursor(20,10);
  51.   const u16 *ptr=&t_beep_freqtab[tbeep_n*2];
  52.   print_dec16(pgm_read_word(ptr));
  53.   t_beep_delta=pgm_read_word(ptr+1);
  54.   fpga_sel_reg(COVOX);
  55.   int6vect=0b00000001;
  56.   // внутри этого цикла ничего не выводить в FPGA (не менять текущий регистр) !
  57.   do
  58.   {
  59.    switch ((u8)(waitkey()>>8))
  60.    {
  61.     case KEY_ESC:
  62.       go2=GO_EXIT;
  63.       break;
  64.     case KEY_UP:
  65.       if (tbeep_n<14)
  66.       {
  67.        tbeep_n++;
  68.        go2=GO_RESTART;
  69.       }
  70.       break;
  71.     case KEY_DOWN:
  72.       if (tbeep_n)
  73.       {
  74.        tbeep_n--;
  75.        go2=GO_RESTART;
  76.       }
  77.    }
  78.   }while (go2==GO_READKEY);
  79.   int6vect=0;
  80.  }while (go2!=GO_EXIT);
  81.  fpga_reg(INT_CONTROL,0);
  82. }
  83.  
  84. //-----------------------------------------------------------------------------
  85.