Guest User

Maple XAdc: xadc.h

a guest
May 27th, 2011
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include "wirish.h"
  2. #include "adc.h"
  3. #include "dma.h"
  4.  
  5. #define XADC_BUF_SIZE 2000
  6.  
  7. //sample rates
  8. #define XADC_SAMPLE_RATE_1000kHz   ADC_SMPR_1_5
  9. #define XADC_SAMPLE_RATE_700kHz    ADC_SMPR_7_5
  10. #define XADC_SAMPLE_RATE_540kHz    ADC_SMPR_13_5
  11. #define XADC_SAMPLE_RATE_340kHz    ADC_SMPR_28_5
  12. #define XADC_SAMPLE_RATE_260kHz    ADC_SMPR_41_5
  13. #define XADC_SAMPLE_RATE_200kHz    ADC_SMPR_55_5
  14. #define XADC_SAMPLE_RATE_160kHz    ADC_SMPR_71_5
  15. #define XADC_SAMPLE_RATE_55kHz     ADC_SMPR_239_5
  16.  
  17. //8th bit in ADC CR2
  18. #define XADC_ENABLE_DMA  0b100000000
  19. #define XADC_DISABLE_DMA 0b011111111
  20.  
  21. //DMA defines
  22. #define XADC_DMA_CH  DMA_CH1
  23. #define XADC_DMA_DEV DMA1
  24.  
  25.  
  26. class XAdc {
  27.     public:
  28.         static const uint8 Dual=1;
  29.         static const uint8 Single=0;
  30.         static const uint8 Blocking=1;
  31.         static const uint8 NonBlocking=0;
  32.        
  33.         XAdc();
  34.        
  35.         uint8 read();
  36.         uint8 read(uint16 samples);
  37.        
  38.         void setup_single_dma_transfer(uint16 samples);
  39.         void setup_dual_dma_transfer(uint16 samples);
  40.         uint8 is_transfer_finished();
  41.         void stop_dma_transfer();
  42.        
  43.         void set_options(uint8 pinA, uint8 pinB, uint8 dual, uint8 blocking, uint16* buffer);
  44.         void set_dual(uint8 dual);
  45.         void set_blocking(uint8 blocking);
  46.         void set_buffer(uint16* buffer);
  47.         void set_pins(uint8 pinA, uint8 pinB);
  48.         void set_pin(uint8 pinA);
  49.         void set_sample_rate(adc_smp_rate smp_rate);
  50.        
  51.        
  52.         uint16* buffer;
  53.         uint8 pin1;
  54.         uint8 pin2;
  55.         uint8 dual;
  56.         uint8 blocking;
  57.         uint8 result;
  58.         uint16 size;
  59. };
Advertisement
Add Comment
Please, Sign In to add comment