打印
[AVR单片机]

关于Atmega128的ICC编程问题

[复制链接]
2932|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sixfeet|  楼主 | 2007-5-16 22:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 对于引脚比如说PORTE,其中只有PE0,PE1,PE6有用,我是将其设置为0x43好还是0xFF好呢?还有如果PORTA=0xFF,那么DDRA设置为0x00或者0xFF有什么讲究么?
2 如何能够动态的调节CLK呢?最好能给些程序提示
谢谢

相关帖子

沙发
sixfeet|  楼主 | 2007-5-17 10:18 | 只看该作者

自己顶

有什么建议,我应该在哪里找到答案的路径都可以
谢谢

使用特权

评论回复
板凳
51avr| | 2007-5-17 15:42 | 只看该作者

我来说说我的看法。

1。PORTE = 0X43 或 PORTE = 0XFF, 都不好。打个比方:你的PE0控制LED,PE1与LED控制无关,那么你的LED模块只应该对PE0的控制负责。你不应该在LED模块中控制PE1。碰到这种情况最好用宏:
#define LED_INIT() do{DDRE |= 1<<PE0; 
                   LED_OFF();
                   }while(0)
#define LED_ON()   PORTE |= 1<<PE0       // 高电平点亮LED
#define LED_OFF()  PORTE &= ~(1<<PE0)
在程序中对LED的控制只使用宏。这样方便你的调试,维护和移植。

2。PORTA=0xFF,那么DDRA设置为0x00或者0xFF有什么讲究么?
   A: 有讲究,参考数据手册IO数据端口部分。

3. 动态调节CLK。不太明白是什么CLK.如果是指系统时钟,那就是不能调节的,熔丝位只能通过烧写器修改;如果是指定时器的时钟,是可以通过动态调节分频器来达到目的;如果是指外扩RAM的总线速度,那也是可以通过寄存器配置插入不同等待周期的。

使用特权

评论回复
地板
sixfeet|  楼主 | 2007-5-17 19:24 | 只看该作者

首先谢谢51avr

对于动态调节CLK,我就是希望能够通过调节定时器的始终来进行分频的。
现在还有的问题是:
1 如果是动态调节,可以实现无级变速么?无极的由于又要对定时器进行设置,会不会很复杂,有没有参考的程序?请指教!
2 另外一个,我的串口调试程序现在无法输出超过4个字符的大量的字符串,这个是什么原因,有什么解决办法呢?求助,我的串口调试程序如下:

#include <stdio.h> 
#include <macros.h> 
#include "iom128v.h" 
#include "pgmspace.h"

void Usart0_init(void)  //7.3728Mhz频率,设置波特率9.6k,8位数据位,无校验,接收发送使能,1位停止位 

  UBRR0H=0; 
  UBRR0L=47; 
  UCSR0B=(1<<RXEN0)|(1<<TXEN0);  //发送接收使能,使用查询方式,故没有使能中断 
  UCSR0C=(1<<UCSZ00)|(1<<UCSZ01);  //0x06 8位数据,1位停止位,无校验 


void Usart0_transmit(unsigned char c)  //查询方式发送接收字符函数 
 { 
  while( !(UCSR0A&(1<<UDRE0)));//等待发送缓冲区为空 
  UDR0=c; 
  } 

unsigned char Usart0_receive(void) 
 { 
  while (!(UCSR0A&(1<<RXC0))) ; 
  return UDR0; 
 } 
   
int main(void) 
 { 
   unsigned int temp; 
   
   Usart0_init();
   
  while(1) 
     { 
       Usart0_transmit( Usart0_receive()); 
       for(temp=0;temp<3000;temp++) 
     { 
  } 

使用特权

评论回复
5
sixfeet|  楼主 | 2007-5-17 20:04 | 只看该作者

补充一下

因为我是想用Atmega128来驱动电机
所以在程序中应该会用到单片机的比较、捕捉、PWM功能
还想请问用什么方式来检测转速信号,实现电机调速器(此即为上楼所问如何来分频调节定时器的原因)

使用特权

评论回复
6
sixfeet|  楼主 | 2007-5-20 11:30 | 只看该作者

最新问题

现在发现,也许是查询方式的效率问题
请问各位是否有已经被验证的中断串口程序呢
能否告诉我呢,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

7

帖子

0

粉丝