Changeset 279


Ignore:
Timestamp:
10/06/2007 06:06:05 PM (4 years ago)
Author:
agr
Message:

sensor driver bug fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • nano-RK/src/drivers/platform/firefly2_2/source/ff_basic_sensor.c

    r239 r279  
    4141 
    4242uint8_t channel; 
     43uint8_t is_open; 
    4344 
    4445#define ADC_INIT() \ 
     
    8889                        PORTF |= PWR_CTRL_MASK; 
    8990                        init_adc();   
     91                        is_open=0; 
    9092                      return 1; 
    9193              
    92             case OPEN:    
     94            case OPEN:   
     95                    if(is_open==1) return NRK_ERROR; 
     96                    is_open=1;  
    9397                    if(opt&READ_FLAG) 
    9498                    { 
     
    116120             case READ: 
    117121                      count=0; 
     122                      if(size!=1 && size!=2) return 0; 
    118123                        if(channel!=BAT) 
    119124                        { 
    120125                              /* Conversion to 8-bit value*/ 
    121126                              uint16_t val=get_adc_val(); 
    122                               buffer[count]=val  & 0xFF; 
    123                               count++; 
    124                               buffer[count]=(val>>8)  & 0xFF; 
     127 
     128                                if(size==2) 
     129                                { 
     130                                        buffer[count]=val  & 0xFF; 
     131                                        count++; 
     132                                        buffer[count]=(val>>8)  & 0xFF; 
     133                                } 
     134 
     135                                if(size==1) 
     136                                { 
     137                                        buffer[count]=(val>>8)  & 0xFF; 
     138                                } 
     139 
     140 
    125141                        } else 
    126142                        { 
    127143                        uint16_t tmp; 
    128144                        tmp=read_voltage_status(); 
    129                         buffer[count]=tmp & 0xFF; 
    130                         count++; 
    131                         buffer[count]=(tmp>>8) & 0xFF; 
     145                        if(size==2) 
     146                                { 
     147                                        buffer[count]=tmp & 0xFF; 
     148                                        count++; 
     149                                        buffer[count]=(tmp>>8) & 0xFF; 
     150                                } 
     151                        if(size==1) 
     152                                { 
     153                                        buffer[count]=(tmp>>8) & 0xFF; 
     154                                } 
    132155                        } 
    133156                      count++; 
     
    137160                        // Turn off sensor power 
    138161                        PORTF |= PWR_CTRL_MASK; 
     162                        is_open=0;  
    139163                        return NRK_OK; 
    140164              
Note: See TracChangeset for help on using the changeset viewer.