找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2228|回复: 0
收起左侧

ATMEL Samc21 ADC 采集程序

[复制链接]
ID:301613 发表于 2020-8-12 14:40 | 显示全部楼层 |阅读模式
采用的是12位的内部ADC采集程序经过测试可用。
  1. /*
  2. * Systick_timer.c
  3. *
  4. * Created: 2019/4/22 17:41:05
  5. *  Author: autonav
  6. */
  7. #include "Systick_timer.h"

  8. volatile uint32_t systick_ms;
  9. volatile Flag_TypeDef systick_flag;

  10. volatile uint32_t systick_ms;
  11. volatile Flag_TypeDef systick_flag;

  12. void SysTick_Handler(void)
  13. {
  14.         systick_ms++;
  15.         
  16.         systick_flag.flag_1ms++;
  17.         systick_flag.flag_2ms++;
  18.         systick_flag.flag_5ms++;
  19.         
  20.         systick_flag.flag_10ms++;
  21.         systick_flag.flag_20ms++;
  22.         systick_flag.flag_50ms++;
  23.         
  24.         systick_flag.flag_100ms++;
  25.         systick_flag.flag_200ms++;
  26.         
  27. }

  28. void SysTick_TimerStart()
  29. {
  30.         if (SysTick_Config(SystemCoreClock / 1000))   //配置1ms SysTick中断
  31.         {
  32.                 while (1)
  33.                 {
  34.                         
  35.                 }
  36.         }
  37. }

  38. float64_t SysTick_GetCurrentTime()
  39. {
  40.         volatile uint32_t load = SysTick->LOAD;
  41.         volatile uint32_t val = SysTick->VAL;
  42.         return( (systick_ms+(float64_t)(load-val)/(load+1)) / 1000);
  43. }

  44. float64_t get_dT(float64_t *last_time)
  45. {
  46.         float64_t current_time = SysTick_GetCurrentTime();
  47.         float64_t dt = current_time - *last_time;
  48.         *last_time = current_time;
  49.         return(dt);
  50. }

  51. void Delay(uint32_t x)
  52. {
  53.         while(x--);
  54. }
复制代码


Adc.7z

1.27 MB, 下载次数: 13, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表