Subversion Repositories pentevo

Rev

Go to most recent revision | 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.  
  16. const u16 t_beep_freqtab[] PROGMEM =
  17. {
  18.    75,   45,
  19.   107,   64,
  20.   152,   91,
  21.   214,  128,
  22.   302,  181,
  23.   427,  256,
  24.   604,  362,
  25.   854,  512,
  26.  1208,  724,
  27.  1709, 1024,
  28.  2417, 1448,
  29.  3418, 2048,
  30.  4833, 2896,
  31.  6836, 4096,
  32.  9668, 5793
  33. };
  34.  
  35. //-----------------------------------------------------------------------------
  36.  
  37. void Test_Beep(void)
  38. {
  39.  t_beep_ptr=0;
  40.  t_beep_delta=0;
  41.  scr_window(&wind_t_beep);
  42.  scr_print_mlmsg(mlmsg_tbeep);
  43.  fpga_reg(INT_CONTROL,0b00000001);
  44.  u8 tbeep_n, go2;
  45.  tbeep_n=7;
  46.  do
  47.  {
  48.   go2=GO_READKEY;
  49.   scr_set_cursor(20,10);
  50.   const prog_uint16_t *ptr;
  51.   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.