📄 flash.c
字号:
/*A sample project file to be used with HI-TIDE, to demonstrate the functionality of the microcontroller's FLASH memory.*/
/*Refer to flash.txt for additional information*/
/*Source code for flash_read and flash_write routines used in this example is found in ~/PIC18/sources/ directory*/
#include <pic18.h>
#include "flash.h"
#include <stdio.h>
void init(void);
volatile bit RESET;
volatile const unsigned char old_text[]="Insert text here"; /*this is the variable in FLASH where the old text resides*/
unsigned char new_text[]="HI-TECH Software"; /*unlike the old_text this is not a CONST -> stored in data RAM */
far unsigned char * source_ptr = (far unsigned char *)new_text; /*pointers to data*/
far unsigned char * dest_ptr = (far unsigned char *)old_text;
unsigned char size = sizeof(new_text);
void main(void){
init();
while(1){
printf("\rcode string reads: %s\n",dest_ptr); /*print the string from flash*/
printf("\rwriting to flash...\n");
flash_write(source_ptr,size,dest_ptr); /*write to flash memory from data memory */
printf("\rcode string reads: %s\n",dest_ptr); /*print the string from flash*/
while(!RESET);
RESET=0;
}
}
void putch(unsigned char c){
while(!TXIF)continue;
TXREG=c; /*transmit a character to Serial IO */
}
void init(void){
RBIE=1; /*enable PORTB interrupts to */
GIEH=1; /*allow interrupts from PUSH BUTTONS */
GIEL=1;
SPBRG = DIVIDER; /*enable serial port transmissions */
TXSTA = (SPEED|0x20); /*and set up BAUD rate generator*/
RCSTA = (0x90);
TRISB=0xF0; /*use port B inputs for interface*/
TRISC=0x80;
RESET=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -