#include "_global.h"
#include "_screen.h"
#include "_ps2k.h"
//┌──────────────────────────────┐
//│ │
//│ 12345 Гц │
//│ │
//│ <>, <> - изменение частоты │
//└──────────────────────────────┘
u16 t_beep_ptr, t_beep_delta;
const WIND_DESC wind_t_beep PROGMEM = { 8,8,32,6,0xdf,0x01 };
const u16 t_beep_freqtab[] PROGMEM =
{
75, 45,
107, 64,
152, 91,
214, 128,
302, 181,
427, 256,
604, 362,
854, 512,
1208, 724,
1709, 1024,
2417, 1448,
3418, 2048,
4833, 2896,
6836, 4096,
9668, 5793
};
//-----------------------------------------------------------------------------
void Test_Beep(void)
{
t_beep_ptr=0;
t_beep_delta=0;
scr_window(&wind_t_beep);
scr_print_mlmsg(mlmsg_tbeep);
fpga_reg(INT_CONTROL,0b00000001);
u8 tbeep_n, go2;
tbeep_n=7;
do
{
go2=GO_READKEY;
scr_set_cursor(20,10);
const prog_uint16_t *ptr;
ptr=&t_beep_freqtab[tbeep_n*2];
print_dec16(pgm_read_word(ptr));
t_beep_delta=pgm_read_word(ptr+1);
fpga_sel_reg(COVOX);
int6vect=0b00000001;
// внутри этого цикла ничего не выводить в FPGA (не менять текущий регистр) !
do
{
switch ((u8)(waitkey()>>8))
{
case KEY_ESC:
go2=GO_EXIT;
break;
case KEY_UP:
if (tbeep_n<14)
{
tbeep_n++;
go2=GO_RESTART;
}
break;
case KEY_DOWN:
if (tbeep_n)
{
tbeep_n--;
go2=GO_RESTART;
}
}
}while (go2==GO_READKEY);
int6vect=0;
}while (go2!=GO_EXIT);
fpga_reg(INT_CONTROL,0);
}
//-----------------------------------------------------------------------------