flash.c
来自「picc_18v 8.35pl35 PIC18系列单片机开发C编译器」· C语言 代码 · 共 54 行
C
54 行
/*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 + =
减小字号Ctrl + -
显示快捷键?