搜索
bottom↓
回复: 1

5104遥控,调试失败,帮忙看一下,谢谢!

[复制链接]

出0入0汤圆

发表于 2006-12-6 10:37:27 | 显示全部楼层 |阅读模式
/*****************************************************

This program was produced by the

CodeWizardAVR V1.24.8c Professional

Automatic Program Generator

?Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com



Project :

Version :

Date    : 2006-12-5

Author  : F4CG                           

Company : F4CG                           

Comments:





Chip type           : ATmega48

Clock frequency     : 1.000000 MHz

Memory model        : Small

External SRAM size  : 0

Data Stack size     : 128

*****************************************************/



#include <mega48.h>

#include <delay.h>

#define uchar unsigned char  

#define uint unsigned int



// External Interrupt 0 service routine

/***************************************************

周期固定为1.688毫秒,1/4T高电平+3/4T低电平为“0”,3/4T高电平+1/4T低电平为“1”。

所以遥控接收头出来的信号,1/4T低电平+3/4T高电平为“0”,3/4T低电平+1/4T高电平为“1”。

编码共有12位,前面五位为3位起始码+2位用户码,后面跟7位指令码。

****************************************************/   

interrupt [EXT_INT0] void ext_int0_isr(void)

{  

  uint user_code,temp;

  uchar i;

    for( i=0;i<12;i++ )     

   {

      temp = 4000;

      while( ((PIND&0B00000100)==0B00000100) && (temp!=0) ){temp--;}

      delay_us(800);      

      if( (PIND&0B00000100)==0B00000000 )     

      {

         user_code |= (1<<i);         

         delay_us(700);

      }

      else                     

      {

         user_code &= ~(1<<i);

      }                             

   }

   user_code &=0x001f;

   if      ( user_code==0x0002)      PORTB ^= (1<<0);

   else if ( user_code==0x0004)      PORTB ^= (1<<1);

   else if ( user_code==0x0008)      PORTB ^= (1<<2);

   else if ( user_code==0x0010)      PORTB ^= (1<<3);

   

}



void mcu_init(void)

{

// Crystal Oscillator division factor: 8

#pragma optsize-

CLKPR=0x80;

CLKPR=0x03;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif



// Input/Output Ports initialization

// Port B initialization

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

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

PORTB=0xFF;

DDRB=0xFF;



// Port D 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

PORTD=0x00;

DDRD=0x00;



// External Interrupt(s) initialization

// INT0: On

// INT0 Mode: Falling Edge

EICRA=0x02;

EIMSK=0x01;

EIFR=0x01;

PCICR=0x00;



// Global enable interrupts

#asm("sei")

}



void main(void)

{

  mcu_init();



  while (1)

      {};

}

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

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

出0入0汤圆

发表于 2006-12-6 10:53:32 | 显示全部楼层
应该不难的吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 23:03

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

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