You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

70 lines
1.4 KiB

  1. #include "config.h"
  2. #include "adc.h"
  3. #include "dac.h"
  4. #include "uart.h"
  5. #include <stdio.h>
  6. int main(void)
  7. {
  8. uint32_t v;
  9. char ch;
  10. config_init();
  11. uart1_init(115200);
  12. adc_init();
  13. dac_init();
  14. uart1_put_string("ADC/DAC test\r\n");
  15. for (;;) {
  16. switch((ch = uart1_get())) {
  17. case 'r':
  18. uart1_put_string("read");
  19. v = adc_read();
  20. uart1_put_string(" 0x");
  21. uart1_put_hex32(v);
  22. v = adc_convert(v);
  23. uart1_put_string(" 0x");
  24. uart1_put_hex32(v);
  25. uart1_put_string(" ");
  26. uart1_put_dec(v);
  27. uart1_put_string("\r\n");
  28. break;
  29. case 'c':
  30. uart1_put_string("convert");
  31. adc_start_conversion();
  32. while (!adc_is_conversion_ready())
  33. uart1_put('.');
  34. uart1_put_string("done\r\n");
  35. break;
  36. case '1'...'9':
  37. v = (ch - '1') * 0x2000L;
  38. if (v > 65535) v = 65535;
  39. uart1_put_string("write 0x");
  40. uart1_put_hex16(v);
  41. uart1_put_string("\r\n");
  42. dac_write(v);
  43. break;
  44. case 't':
  45. uart1_put_string("toggling, keypress to end\r\n");
  46. while (!uart1_can_get()) {
  47. dac_write(0x0000);
  48. dac_write(0xFFFF);
  49. }
  50. uart1_get();
  51. break;
  52. case 's':
  53. uart1_put_string("sweeps, keypress to end\r\n");
  54. while (!uart1_can_get())
  55. for (v = 0; v < 65536; v++)
  56. dac_write(v);
  57. uart1_get();
  58. break;
  59. default:
  60. uart1_put_string("ADC: Read Convert\r\n");
  61. uart1_put_string("DAC: 123456789 Toggle Sweep\r\n");
  62. break;
  63. }
  64. }
  65. return 0;
  66. }