⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 写XS128的D-Flash的三个程序案例
💻 C
字号:
/*   ___INITRG = 0x00;   lock registers block to 0x0000              */
/*   ___INITRM = 0x39;   lock Ram to end at 0x3FFF                   */
/*   ___INITEE = 0x09;   lock EEPROM block to end at 0x0fff          */
/*   上述三个寄存器的设置需在Start12.c文件开头处加入宏定义           */
/*   "#define _HCS12_SERIALMON"                                      */

/*   重新映射区域地址需在Project.prm文件中做下述修改                 */
/*   EEPROM =  0x0800 TO 0x0FFF;                                     */
/*   RAM    =  0x1FFF TO 0x3FFF;                                     */


#include <hidef.h>                      /* common defines and macros */
#include "derivative.h"           /* derivative-specific definitions */
#include "Init_Func.h"
#include "Flash.h"

uint WBuff[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};

uint RBuff[16]={0};

#pragma CODE_SEG ADDR_HIGH
/*********************************************************************/ 
/*                              main                                 */
/*********************************************************************/
void main(void) 
  {
	  PLL_Init();
	  SCI_Init();
	  
    PORTB=0xFF;
    DDRB =0xFF;                
    PrgToRAM();                     //机器码调入RAM中
    Flash_Erase_Sector(0x38,0x8000);
    Flash_Write_Nword(0x38,0x8000,(uint)(WBuff),16);
    Flash_Read_Sector(0x38,0x8000,RBuff,16);
    
    EnableInterrupts;
    for(;;)         
      {

      }                          
  }        
 
                             
#pragma CODE_SEG NON_BANKED
void interrupt 20 SCI0_Rx_ISR(void)
  {  
  	uchar data,i;
  	DisableInterrupts;
  	data=SCI_RxByte();
  	SCI_TxByte(data);
  	if(data=='?')
  	   for(i=0x00;i<16;i++)
  	      SCI_TxByte((uchar)(RBuff[i]));
  	EnableInterrupts;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -