Changeset 2034:47fdcec46b5c in roaraudio


Ignore:
Timestamp:
06/21/09 15:07:14 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

use 18 states from no data to 0xFFFF for 16 bit LED PWM

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libroarlight/pwm.c

    r1977 r2034  
    3131    0xFFFF 
    3232*/ 
    33     0xFFFF, 0x7F7F, 0x777F, 0x7777,  0x5777, 0x5757, 0x5557, 0x5555, 
    34     0x1555, 0x1515, 0x1115, 0x1111,  0x0111, 0x0101, 0x0001, 0x0000 
     33    0xFFFF, 0x7FFF, 0x7F7F, 0x777F, 0x7777,  0x5777, 0x5757, 0x5557, 
     34    0x5555, 0x1555, 0x1515, 0x1115, 0x1111,  0x0111, 0x0101, 0x0001, 
     35    0x0000 
    3536                            }; 
    3637 
     
    5152  return -1; 
    5253 
    53  if ( value < 0 || value > state->bits ) 
     54 if ( value < 0 || value > (state->bits+1) ) 
    5455  return -1; 
    5556 
  • roard/driver_pwmled.c

    r1990 r2034  
    9494ssize_t driver_pwmled_write (struct roar_vio_calls * vio,  void *buf, size_t count) { 
    9595 struct driver_pwmled * self = vio->inst; 
     96 int value; 
    9697 
    9798 if ( vio == NULL || buf == NULL ) 
     
    101102  return -1; 
    102103 
    103  if ( roar_light_pwm_set(&(self->state), ((unsigned char*)buf)[self->channel] / 16) == -1 ) 
     104 value = ((unsigned char*)buf)[self->channel] / 15; 
     105 
     106 if ( roar_light_pwm_set(&(self->state), value) == -1 ) 
    104107  return -1; 
    105108 
    106                                                                     // bit per word, bit per byte 
    107  return roar_light_pwm_send(&(self->state), &(self->vio), self->rate/11/8/100) == 0 ? count : -1; 
     109 if ( value ) { 
     110                                                                     // bit per word, bit per byte 
     111  return roar_light_pwm_send(&(self->state), &(self->vio), self->rate/11/8/100) == 0 ? count : -1; 
     112 } 
     113 
     114 return count; 
    108115} 
    109116 
Note: See TracChangeset for help on using the changeset viewer.