ml5238.c 713 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <string.h>
  2. #include "spi.h"
  3. #include "ml5238.h"
  4. #include "ml5238_reg.h"
  5. void ml5238_init(void){
  6. spi0_init();
  7. ml5238_softreset();
  8. }
  9. void ml5238_softreset(void)
  10. {
  11. unsigned char i;
  12. for(i=0u;i<0x0Au;i++)
  13. {
  14. ml5238_write((uint8_t)(ML5238_VMON + i), 0x00u);
  15. }
  16. }
  17. int ml5238_write(uint8_t regaddr, uint8_t data){
  18. uint16_t send_data=(((uint16_t)regaddr)<<(0x08+1u))|((uint16_t)data);
  19. ml5238_cs(0);
  20. int ret = spi0_send_uint16(send_data, NULL);
  21. ml5238_cs(1);
  22. return ret;
  23. }
  24. int ml5238_read(uint8_t regaddr, uint8_t *data){
  25. uint16_t send_data=((((uint16_t)regaddr)<<(0x08+1u))|0x0100u)|((uint16_t)0x00u);
  26. ml5238_cs(0);
  27. int ret = spi0_send_uint16(send_data, data);
  28. ml5238_cs(1);
  29. return ret;
  30. }