Subversion Repositories DashDisplay

Rev

Rev 30 | Rev 47 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 30 Rev 46
Line 16... Line 16...
16
 
16
 
17
/* percent is integer from 0 to 100 */
17
/* percent is integer from 0 to 100 */
18
void
18
void
19
dial_draw_needle (uint16_t percent)
19
dial_draw_needle (uint16_t percent)
20
{
20
{
21
  int ang = ((percent - 50) * a1) / 50;
21
  int ang = SINE_SCALING * ((percent - 50) * a1) / 50;
22
 
22
 
23
  int si = ap_sin (ang);
23
  int si = ap_sin (ang);
24
  int co = ap_cos (ang);
24
  int co = ap_cos (ang);
25
 
25
 
26
  /* calculate a shift for a second side of the needle */
26
  /* calculate a shift for a second side of the needle */
27
  int xl = ap_sin (ang - 90);
27
  int xl = ap_sin (ang - SINE_STEPS);
28
  int yl = ap_cos (ang - 90);
28
  int yl = ap_cos (ang - SINE_STEPS);
29
 
29
 
30
  int si2 = siz + 2;
30
  int si2 = siz + 2;
31
  int si3 = 2 * siz / 3;
31
  int si3 = 2 * siz / 3;
32
 
32
 
33
  int xs,ys;
33
  int xs,ys;
Line 62... Line 62...
62
  int step = 256 * a1 * 2 / (4 * (sc_high - sc_low));
62
  int step = 256 * a1 * 2 / (4 * (sc_high - sc_low));
63
  int t;
63
  int t;
64
  ang = -a1 * 256;
64
  ang = -a1 * 256;
65
  for (t = sc_low * 4; t <= sc_high * 4; t++)
65
  for (t = sc_low * 4; t <= sc_high * 4; t++)
66
    {
66
    {
67
      int si = ap_sin (ang / 256);
67
      int si = ap_sin ((ang*SINE_SCALING) / 256);
68
      int co = ap_cos (ang / 256);
68
      int co = ap_cos ((ang*SINE_SCALING) / 256);
69
 
69
 
70
      int len;
70
      int len;
71
      switch (t % 4)
71
      switch (t % 4)
72
        {
72
        {
73
        case 0:
73
        case 0: