直接测量微处理器总线时钟的程序

发布者:iota19最新更新时间:2007-10-30 来源: EDN China关键字:频率  定时  串行  端口 手机看文章 扫描二维码
随时随地手机看文章
用单控制环检验HC08 SCS08微处理器的总线频率。

Freescale公司的HC08和更新的HCS08微处理器系列具有通用外围模块。时钟发生器也不例外。其范围从任意I/O引脚的内部时钟到外部晶体或晶振。一旦选择了时钟源,可以有多种控制最终总线频率的选择。例如,为MC9S08GB微处理器连接一个32,768Hz的晶体,允许使用FLL(锁频环)产生最多18.874 MHz的总线频率。选择源、除数和FLL允许多功能且复杂的设置。

一旦写入总线时钟初始化程序,在继续工程其它部分之前,也许想检验总线是否以期望的速度运行。本设计方案给出在任意I/O端口以总线1/9的精确速度输出方波的程序(清单1和清单2)。仅连接一个频率计数器到这个管脚,显示总线频率。只需做的是将小数点向右移动一位。一旦检验总线速度,可以信赖的写定时器、串行I/O和其他时钟有关的程序。

只需要写代码,首先关中断和关COP(共有片上处理器)。在总线时钟初始化程序中,确保将想要使用的I/O端口初始化为输出。然后,只跳到toggle clock,输出总线频率除10,直到断电。本设计方案使用HC08版的PB0( 清单1)和HCS08版的PD0(清单2)。通过改变第一条线确定端口和第二条线选择位,可以使用任何适合的I/O端口。本设计方案也命名了老符号PB的端口,替代如今常用的PTB。

英文原文:

Routines directly measure microcontroller-bus clock

You can verify the bus frequency of the HC08 SCS08 microcontroller with simple control loops.

Kerry Erendson, Bulova Technologies; Edited by Charles H Small and Fran Granville -- EDN, 10/25/2007

The Freescale HC08 and newer HCS08 microcontroller families have versatile peripheral modules. Their clock generators are no exceptions. They range from the internal clock, which frees I/O pins, to external crystals or oscillators. Once you select the timing source, you have many options for controlling the final bus frequency. For instance, connecting a 32,768-Hz crystal to an MC9S08GB microcontroller allows you to use the FLL (frequency-locked loop) to generate many bus frequencies as high as 18.874 MHz. Selecting the source, the divisors, and the FLL settings allows versatility but also can get complicated.

Once you write the bus-clock-initialization routine, you may want to verify that the bus is running at the speed you intend before moving on to the rest of the project. This Design Idea presents routines that output a square wave at exactly one-tenth the bus speed on any I/O port (Listing 1 and Listing 2). Just connect a frequency counter to this pin, and it will display your bus frequency. All you have to do is move the decimal point one place to the right. Once you verify the bus speed, you can confidently write the timer, serial-I/O, and other clock-dependent routines.

You need to write code only to first disable interrupts and disable the COP (common on-chip processor). In your bus-clock-initialization routine, be sure to initialize the I/O port you want to use as an output. Then, just jump to the toggle clock, which outputs the bus frequency divided by 10 until power-down. This Design Idea uses PB0 in the HC08 version (Listing 1) and PD0 in the HCS08 version (Listing 2). You can use any available I/O port by altering the first line to identify the port and the second line to choose a bit. Also, this Design Idea names ports with the older notation PB, instead of today’s more fashionable PTB.

英文原文地址:http://www.edn.com/article/CA6491147.html

关键字:频率  定时  串行  端口 引用地址:直接测量微处理器总线时钟的程序

上一篇:基于PIC18F66J60的Ethernet至RS-232的协议转换器
下一篇:基于PC的开放式多轴运动控制系统开发

推荐阅读最新更新时间:2024-05-13 18:39

单片机学习之十九:串行通讯程序-单片机接收
一、实验现象: 当电脑向单片机发送一个数据后,P0口发生灯光变换。 二、实验任务分析: 这个试验我们仍然采用方式1来完成。在上一个试验的通讯理论介绍中,我们知道,当单片机接受到一帧信号后,会置位串行口接受中断标志RI,从而向单片机申请中断。如果单片机开放中断,就会进入中断服务程序,我们就把灯光变化的任务放到中断程序中来完成即可。 当然,这个试验功能的实现不只是这么一种方法。我们还可以采用在主程序中查询RI的方式来实现。这个试验我们就分别用这两种方式来现它。同样,在这个试验中,我们也利用串口调试助手来完成向单片机发送数据的过程。具体设置方法可见下图: 三、实验程序 1、 中断方式实现 org 00
[单片机]
单片机学习之十九:<font color='red'>串行</font>通讯程序-单片机接收
中断定时器源程序-0-99秒可调时间
定时器基时0.1S在中断内实现,主程序中需要用到0~99秒可调的时间,主程序发出请求后定时器开始工作,我现在在做一个实验主程序中的按键去抖动,显示部分动态扫描的间隔还有其它地方要用到定时器,试过几种方法效果都不太理想,各位帮帮忙给上传个汇编源程序,先谢谢了. 12M晶震 0.1s =100ms =100000US 因为51单片机T0 T1作为16位定时器最大65535 那么 我们用一个16位的T0或者T1 定时50000US 既是50ms 65535-50000=13335 换成16进制3CAF 那么定时器的高字节和低字节位 TH0=3CH TL0=0AFH 这样T0的溢出时间就是50MS 那么在程序中 我们要用到1S的时间怎
[单片机]
MSP430 定时器输出PWM波形
硬件介绍: MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。 MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA有三个模块,CCR0-CCR2;TB含有CCR0-CCR67个模块;其中CCR0模块不能完整的输出PWM波形(只有三种输出模式可用);TA可以输出完整的2路PWM波形;TB可以输出6路完整的PWM波形。 定时器的PWM输出有有8种模式: 输出模式0 输出模式:输出信号
[单片机]
MSP430 <font color='red'>定时</font>器输出PWM波形
STM32定时器的TRGO信号
定时器的框图中有一个TRGO信号输出,此信号可以用来触发ADC、DAC、其他定时器等。 此信号怎么产生呢? 要使用 TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Update); 函数来选择TRGO信号的事件源,这个函数给TIMx_CR2寄存器的位6到位4赋值,位6到位4是MMS ,描述如下: 如果MMS 值为000:当TIMx_EGR寄存器的UG位有效,就会触发TRGO输出。 如果MMS 值为010:当产生更新事件时,就会触发TRGO输出。 另外: 当配置MMS 值为010:当产生更新事件时,就会触发TRGO输出。还可以配合重复计数寄存器来使用: 即重复多少
[单片机]
STM32<font color='red'>定时</font>器的TRGO信号
适用于汽车信息娱乐系统并具备内容保护功能的高清串行/解串器
美国国家半导体公司(National Semiconductor Corporation)(美国纽约证券交易所上市代码:NSM)宣布推出业界首款具备高带宽数字内容保护(HDCP)功能,适用于汽车信息娱乐系统的串行/解串器芯片组。该 FPD-Link III 芯片组可在车内传送已加密的视频和音频内容,如播放分辨率高达720p的 蓝光影片,让乘客在车中仿若置身家庭影院。 美国国家半导体FPD-Link III 串行/解串器芯片组由DS90UH925Q串行器和 DS90UH926Q 解串器组成。两款芯片均可通过一条双绞线电缆同时传送数字视频、音频和双向I2C控制信号,而采用的接口技术符合Digital Content
[汽车电子]
适用于汽车信息娱乐系统并具备内容保护功能的高清<font color='red'>串行</font>/解串器
MSP430 LaunchPad定时器中断(连续模式)
#include msp430g2231.h int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P1DIR |= 0x01; TACCTL0 = CCIE;//使能CCIFG标志产生的中断 TACCR0 = 50000;(试验了一下,这句不加也可以) TACTL = TASSEL_2 + MC_2;//选择timer时钟和模式 // _BIS_SR(GIE); _EINT();//开总中断 while(1); } /*中断服务程序*/ #pragma vector
[单片机]
串行口通信 发送0~255数据,单片机再将数据发送回上位机
一. 程序功能 上位机以波特率2400bps发送0~255的数据(十六进制发送),单片机先将数据发送到数码管, 再将数据加上序号发送回上位机,当序号超过255时归零. 二. 程序源码 #include reg52.h #include stdio.h #define uchar unsigned char #define uint unsigned int sbit dula = P2 ^ 6; sbit wela = P2 ^ 7; uchar flag, a, num, num1; uchar bai = 0, shi = 0, ge = 0, dData = 0; uchar cod
[单片机]
MAX121芯片在高速串行接口电路中的应用
1 MAX121 芯片的性能与特点  MAX121芯片是一个带串行接口的14位模数转换集成电路(ADC),它包含有跟踪/保持电路 的一个底飘溢、底噪声、掩埋式齐纳电压基准电源。它的转换速度快、功率消耗底、采样速率高达308 ks/s点,满量程输入电压范围为±5V,功耗为210 mW。可与大多数流行的数字信号处理器的串行接口直接接口,该输入可以接收TTL或CMOS的信号电平,时钟频率为0.1-5.5MHz。    MAX121芯片的功能方框图如图1所示。它有16脚和20脚模式,16脚有DIP和SO封装,20脚有 SSOP封装。特点如下: 14位分辨率;2.
[模拟电子]
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved