S3C2440之PWM

2023-11-12

#include "uart.h"
#include "stdlib.h"

//MS延时
void delay( unsigned int time)
{
	unsigned int i,j;
	
	for ( i=0; i<time; i++)
	{
		  for(j=0;j<30000;j++)
		  {
		  }	
  }	
	    	  
}
void pwm_init(unsigned int tcnt,unsigned int tcmp)
{

/*
	//中断配置
	rSRCPND |= (0x1<<10); //TIMER0
	rINTMOD &= ~(0x1<<10);
	rINTMSK &= ~(0x1<<10);
	rINTPND |= (0x1<<10);
	pISR_TIMER0	= (U32)TIMER0_IRQ;	
*/
	
	//定时器参数配置
	rTCON &= ~(0x1);//关闭定时器
	rTCFG0 |= 0x7c;//125分频 124+1
	rTCFG1 |= 0x2;//TIMER0 8分频
	rTCNTB0 = tcnt;//TIMER0   0xc350 50000,0x3e8 1000,0x1f4 500
	rTCMPB0 = tcmp;//25 50%   0x61a8 25000
	rTCON |= 0x1<<1;//手动更新TIMER0->TCNT0
	rTCON &= ~(0x1<<1);//关闭手动更新
	
	rGPBCON |= 0x2;//定时器PWM输出引脚连接蜂鸣器
	rTCON |= (0x1<<3|0x1<<2|0x1);
}
/*
//定时器中断函数
void __irq TIMER0_IRQ(void)
{
	rSRCPND |= (0x1<<10);
	rINTPND |= (0x1<<10);
	uart_printf("timer0_irq");
}
*/
void choose_speak(void)
{
	char dat;
	static unsigned int *array = NULL;
	static int flag;
	dat = uart_getchar();
	uart_putchar(dat);

}
/*
    播放蜂鸣器
参数设置:vo ->低、中、高音的选择
		 cnt->dou/rui/mi/fa/so/la/xi
		 tim->每个频率响的时间
buzzer数组存的是频率的周期
voice 数组存的是低电平的占空比!


*/
void start_buzzer(int vo,int cnt,unsigned int time)
{
	//close_buzzer();
	static unsigned int buzzer[][8]={{191,170,152,143,127,114,101},//低0/1/2/3/4/5/6
						  {96,86,76,72,64,57,50},//中/7/8/9/10/11/12/13
						  {48,43,38,36,32,28,25}};//高14/15/16/17/18/19/20
	static unsigned int voice[][8]={{160,140,120,110,100,90,80},
						{80,70,60,56,48,41,36},
						{38,34,30,28,24,22,20}};
	pwm_init(buzzer[vo][cnt],voice[vo][cnt]);//重新配置定时器数据
	delay(time);
	close_buzzer();
}
//关闭定时器,不在输出PWM
void close_buzzer(void)
{
	rTCON &= ~(0x1);
	rGPBCON &= ~(0x3);
	rGPBCON |= 0x1;
	rGPBDAT &= ~(0x1); 	
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

S3C2440之PWM 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi

随机推荐

  • 泛微Ecology WebService API测试方法演示(带工具)

    目录 准备工具 测试步骤 准备工具 NET Web Service Studio 下载地址 测试步骤 1 打开工具窗口后 在WSDL EndPoint地址栏输入OA网址 services WorkflowService wsdl 2 点击G
  • Restful风格详解

    SpringMVC Restful风格及实例 参数的转换 一 Restful风格 1 Restful风格的介绍 Restful 一种软件架构风格 设计风格 而不是标准 只是提供了一组设计原则和约束条件 它主要用于客户端和服务器交互类的软件
  • 【华为OD机试真题 JAVA】机器人走迷宫

    标题 机器人走迷宫 时间限制 1秒 内存限制 65536K 语言限制 不限 1 房间由X Y的方格组成 例如下图为6 4的大小 每一个方格以坐标 x y 描述 2 机器人固定从方格 0 0 出发 只能向东或者向北前进 出口固定为房间的最东北
  • js实现自动打开浏览器是如何实现的?

    原理 针对不同的系统 使用Node js的子进程 child process 模块的spawn方法 调用系统的命令打开浏览器 具体命令 mac open https blog csdn net wswq2505655377 win star
  • Pytorch 图像处理中常用的注意力机制的解析与代码详解

    说在前面的前言 什么是注意力机制 代码下载 注意力机制的实现方式 1 SENet的实现 2 CBAM的实现 3 ECA的实现 注意力机制的应用 说在前面的前言 注意力机制是一个非常有效的trick 注意力机制的实现方式有许多 我们一起来学习
  • 解决pip下载慢的几种方式,最后一种一劳永逸

    我们下载模块的话 如果直接pip安装 一般下载会非常慢 运气不好 直接下载超时 因为默认是使用国外的源进行下载 不知道方法的话 直接弄一天也是有可能的 如果将下载源修改为国内的 那速度直接起飞 方法一 一般来说 我们可以直接在安装模块的时候
  • 快充技术

    为了规范快充标准 USB IF USB标准化组织 不久前发布了USB PD 3 0的重要更新 旨在一统快速充电技术规范的PPS Programmable Power Supply 以实现对高通QC4 0 3 0 联发科PE3 0 2 0 华
  • linux shell 数字等于怎么判断

    在 Linux shell 中可以使用等号 来判断一个变量是否等于某个数字 举个例子 如果要判断变量 x 是否等于 5 可以使用以下代码 if x eq 5 then echo x is equal to 5 else echo x is
  • 数据挖掘-可挖掘的数据类型

    可挖掘的数据类型 1 数据库数据 数据库系统 也成数据库管理系统 DBMS 由一组内部相关的数据 称作数据库 和一组管理和存取数据的软件程序组成 关系数据库是表的汇集 每个表都被赋予一个唯一的名字 每个表都包含一组属性 列或字段 并且通常存
  • 【Linux】用户和权限

    文章目录 前言 什么是 root 用户 su 命令和 exit 命令 sudo 命令 为普通用户配置 sudo 认证 用户 用户组管理 什么是Linux 用户和用户组 用户组管理 用户管理 创建用户 删除用户 查看用户所属组 将指定用户添加
  • SOCK_RAW PF_PACKET IPv6带物理地址发送报文

    通过link layer发送IPv4 IPv6 例子如下 http www pdbuchan com rawsock rawsock html 发送ipv4 http www pdbuchan com rawsock tcp4 ll c 发
  • onedrive的多电脑同步妙用

    序言 很多时候 一些问题与想法 必须要有多个设备的背景 概述 通过两台电脑的日常使用思考 展现OneDrive这一同步利器 以及OneDrive的理念与意义 正文 背景 三月份由于一些原因 入手了一个主机 原来的笔记本一下子变成了键盘托 想
  • svn在idea中的使用

    idea在使用svn之前需要对svn进行一下设置 svn默认是需要你去指定客户机自己安装的svn客户端 但这要求我们当初安装时需要将安装svn的 exe那个程序选上 一般大家安装时都不会安装 idea默认集成的也有svn 我们只要简单设置一
  • 6.带你入门matlab 协方差和相关系数( matlab程序)

    1 简述 协方差 V cov X V cov X flag 同上 X为矩阵 相关系数 R corr X X为矩阵 协方差和相关系数函数的使用如下 代码及运行结果 协方差 clear all X1 rand 1 5 c1 cov X1 方差
  • 常用的文件操作命令-重定向-管道符-笔记

    文件操作命令 mkdir 文件名 创建目录 mkdir 文件名 文件名 连续创建目录 mkdir p 文件名 文件名 递归创建目录 touch 文件 创建文件 rm rf 强制且不提醒删除文件 rmdir 删除目录 mv 文件名 新文件名
  • 解决Debian 11系统缺少无线网卡固件rtl8192cfw.bin

    解决Debian 11系统缺少无线网卡固件rtl8192cfw bin 一 先简单介绍解决办法 rtlwifi rtl8192cfw bin 是无线网卡的固件 其实缺少它网卡也是可以用的 只是不知道是不是这个原因导致丢包频繁 在CSDN找到
  • java 前缀树的实现,敏感词的匹配和标记

    目录 一 前缀树的介绍和定义 1 前缀树的定义 2 前缀树的结构 二 前缀树的实现 1 向前缀树中增加词语 2 向前缀树中删除词语 3 对于使用前缀树进行词语标识 4 前缀树的实现代码 三 前缀树使用及测试 1 向前缀树上增加词语 2 根据
  • 【计算机视觉

    文章目录 一 检测相关 13篇 1 1 Polygon Intersection over Union Loss for Viewpoint Agnostic Monocular 3D Vehicle Detection 1 2 Radar
  • c++ 和cuda混合编程 VS2015 C++ 调用 cuda

    1 新建一个C 项目 2 右键添加一个cuda C C file 3 添加下面 lib 库 右键项目 gt 属性 gt 链接器 gt 输入 gt 附加依赖项目 cudart static lib kernel32 lib user32 li
  • S3C2440之PWM

    include uart h include stdlib h MS延时 void delay unsigned int time unsigned int i j for i 0 i