搜索
bottom↓
回复: 3

请教马老师,我用codevision编的程序 函数体都不能正常返回。不知道是什么原因。

[复制链接]

出0入0汤圆

发表于 2005-7-14 16:43:12 | 显示全部楼层 |阅读模式
用向导生成的代码,只把初始化端口的语句包含在一个函数里面 就不能正常返回了

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2005-7-14 22:58:29 | 显示全部楼层
把代码贴上来看。

出0入0汤圆

 楼主| 发表于 2005-7-15 09:00:49 | 显示全部楼层
/*



麻烦高手们帮忙指点一下 ,代码很简单,初次使用AVR。



*/

#include <mega64.h>     

#include <stdio.h>  

#include <delay.h>  





void Init_port(void)

{





// Input/Output Ports initialization

// Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In  

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T  

   PORTA=0x00;

   DDRA=0x00;



// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In  

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T  

   PORTB=0x00;

   DDRB=0x00;



// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In  

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T  

   PORTC=0x00;

   DDRC=0x00;



// Port D initialization

// Func7=Out Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In  

// State7=1 State6=T State5=T State4=T State3=T State2=T State1=T State0=T  

   PORTD=0x80;

   DDRD=0x80;



// Port E initialization

// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=In Func0=In  

// State7=T State6=T State5=T State4=T State3=1 State2=1 State1=T State0=T  

   PORTE=0x0C;

   DDRE=0x0C;



// Port F initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In  

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T  

   PORTF=0x00;

   DDRF=0x00;



// Port G initialization

// Func4=In Func3=In Func2=In Func1=In Func0=In  

// State4=T State3=T State2=T State1=T State0=T  

   PORTG=0x00;

   DDRG=0x00;



// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Mode: Normal top=FFh

// OC0 output: Disconnected

   ASSR=0x00;

   TCCR0=0x00;

   TCNT0=0x00;

   OCR0=0x00;



// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer 1 Stopped

// Mode: Normal top=FFFFh

// OC1A output: Discon.

// OC1B output: Discon.

// OC1C output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge

   TCCR1A=0x00;

   TCCR1B=0x00;

   TCNT1H=0x00;

   TCNT1L=0x00;

   ICR1H=0x00;

   ICR1L=0x00;

   OCR1AH=0x00;

   OCR1AL=0x00;

   OCR1BH=0x00;

   OCR1BL=0x00;

   OCR1CH=0x00;

   OCR1CL=0x00;



// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer 2 Stopped

// Mode: Normal top=FFh

// OC2 output: Disconnected

   TCCR2=0x00;

   TCNT2=0x00;

   OCR2=0x00;



// Timer/Counter 3 initialization

// Clock source: System Clock

// Clock value: Timer 3 Stopped

// Mode: Normal top=FFFFh

// OC3A output: Discon.

// OC3B output: Discon.

// OC3C output: Discon.

   TCCR3A=0x00;

   TCCR3B=0x00;

   TCNT3H=0x00;

   TCNT3L=0x00;

   ICR3H=0x00;

   ICR3L=0x00;

   OCR3AH=0x00;

   OCR3AL=0x00;

   OCR3BH=0x00;

   OCR3BL=0x00;

   OCR3CH=0x00;

   OCR3CL=0x00;



// External Interrupt(s) initialization

// INT0: Off

// INT1: On

// INT1 Mode: Falling Edge

// INT2: Off

// INT3: Off

// INT4: Off

// INT5: Off

// INT6: Off

// INT7: Off

   EICRA=0x08;

   EICRB=0x00;

   EIMSK=0x02;

   EIFR=0x02;

// External SRAM page configuration:  

//              -              / 0000h - FFFFh

// Lower page wait state(s): None

// Upper page wait state(s): None

//   MCUCR=0x80;

//   XMCRA=0x00;



// Timer(s)/Counter(s) Interrupt(s) initialization

   TIMSK=0x00;

   ETIMSK=0x00;



// USART0 initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity

// USART0 Receiver: On

// USART0 Transmitter: On

// USART0 Mode: Asynchronous

// USART0 Baud rate: 9600

   UCSR0A=0x00;

   UCSR0B=0xD8;

   UCSR0C=0x06;

   UBRR0H=0x00;

   UBRR0L=0x33;



// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

// Analog Comparator Output: Off

   ACSR=0x80;

   SFIOR=0x00;   

}      



     

void main(void)

{   

     

   // Declare your local variables here   



    Init_port();   

   #asm("sei")      

   



   // Global enable interrupts  



   while (1)

   {         

        PORTE &=0xFB;  



      putchar('w');



   };   

   

}

出0入0汤圆

发表于 2005-7-17 18:08:56 | 显示全部楼层
从程序上看一般不会出问题的。加以你先用一个简单的程序试一下,如控制一个LED1秒亮,1秒暗(使用delay函数)。第一步使用生成的代码,成功后再将初始化语句写成一个函数调用试试。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 23:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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