[原创] 从今天开始慢慢的学LM3S811

bighead   2011-9-10 20:12 楼主
已经拿到这块板子很久了 都没怎么学 现在开始吧 

因为国赛的遗憾 也是由于自己的代码稳定性不好 也许这样公开帖代码 帖进度才会比较大的提高吧 

我用的是一块学长给的 据说是省赛 TI 发的  就是绿色那块 和仿真器在一块板子上的 没有液晶 算是个遗憾 想把5110利用起来 以前用AVR调过 

学习主要是依照TI官方例程(7月又有更新了)   KEIL平台下 
===================================
2011/9/10

昨天看了PWM波  定时器什么的都看得差不多了  官方例程有PWM的代码 看看函数就行

今天纠结了一下午GPIO和JTAG的防锁死

差不多了...  在跑流水灯...
===================================
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/jtagWait.h"

#ifdef DEBUG
void
__error__(char *pcFilename, unsigned long ulLine)
{
}
#endif

/**********************************************************************
delay_ms()
**********************************************************************/
delay_ms(unsigned long delay)
{
    for(;delay>0;delay--)
SysCtlDelay (166666);
}
int main(void)
{
    unsigned long ulPeriod;
    unsigned char temp = 1;
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |SYSCTL_XTAL_6MHZ);
    jtagWait();
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
    GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE,0xFF);
    ulPeriod = SysCtlClockGet() / 100;
    while(1)
    {
   if(temp == 0) temp  = 1;
    delay_ms(1);
    GPIOPinWrite(GPIO_PORTD_BASE,0xFF,temp);
    temp <<=1; 
    }  
}
==================================
"driverlib/jtagWait.h" 这个是参照周公的那个改的 其他的都是官方的库..



// 定义KEY(针对TI_OEM_LM3S811)
#define KEY_PERIPH SYSCTL_PERIPH_GPIOB
#define KEY_PORT GPIO_PORTB_BASE
#define KEY_PIN GPIO_PIN_5
// 防止JTAG失效
extern void jtagWait(void)
{
SysCtlPeripheralEnable(KEY_PERIPH); // 使能KEY所在的GPIO端口
GPIOPinTypeGPIOInput(KEY_PORT, KEY_PIN); // 设置KEY所在管脚为输入
if (GPIOPinRead(KEY_PORT, KEY_PIN) == 0x00) // 若复位时按下KEY,则进入
{
for (;;); // 死循环,以等待JTAG连接
}
SysCtlPeripheralDisable(SYSCTL_PERIPH_GPIOB); // 禁止KEY所在的GPIO端口
}


我的板子上PB5接了一个按键  结合这个代码 可以拿来防止JTAG被锁

先这样吧 之后研究下5110


回复评论 (22)

学得不错,顶下

http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2011-9-10 20:42

回复 楼主 bighead 的帖子

坚持下去,遇到问题大家会帮解决的。
点赞  2011-9-10 21:46
支持一下  期待你的成长
加油!在电子行业默默贡献自己的力量!:)
点赞  2011-9-11 07:51
你好呀
点赞  2011-9-11 10:20
加油啊 支持
点赞  2011-9-11 13:09
TI官网上有免费的CCS下载,支持上应该比其他IDE会好一些,特别是M3有一个stellaris ware。
点赞  2011-9-13 20:55
和楼主一样啊,我们一起学吧
点赞  2011-9-14 13:34

引用: 原帖由 dsh__zhou 于 2011-9-13 20:55 发表 TI官网上有免费的CCS下载,支持上应该比其他IDE会好一些,特别是M3有一个stellaris ware。

 

个人觉得使用CCSv4.1开发Stellaris简直要命,点个仿真下载要等好久,编译也慢,用MDK或IAR速度好很多。

点赞  2011-9-16 10:04
额 。。。。大家好积极 。。。 5110调好了 拿AVR 的例程移植的 还是AVR 的图。。。 效果图下周。。没带手机下载线。。 上代码。。。 #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/gpio.h" #include "driverlib/sysctl.h" #include "driverlib/jtagWait.h" void LCD_init(void); void LCD_clear(void); void delay_1us(void); void LCD_set_XY(unsigned char x,unsigned char y); void LCD_write_char(unsigned char c); void LCD_write_english_string(unsigned char X,unsigned char Y,char *s); void LCD_write_chinese_string(unsigned char X, unsigned char Y,unsigned char ch_with,unsigned char num,unsigned char line,unsigned char row); void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map,unsigned char Pix_x,unsigned char Pix_y); void LCD_write_byte(unsigned char dat, unsigned char command); //***************************************************************************** // //! \addtogroup example_list //!

PWM (pwmgen)

//! //! This example application utilizes the PWM peripheral to output a 25% duty //! cycle PWM signal and a 75% duty cycle PWM signal, both at 50 kHz. Once //! configured, the application enters an infinite loop, doing nothing while //! the PWM peripheral continues to output its signals. // //***************************************************************************** //***************************************************************************** // // The error routine that is called if the driver library encounters an error. // //***************************************************************************** #ifdef DEBUG void __error__(char *pcFilename, unsigned long ulLine) { } #endif /********************************************************************** delay_ms() **********************************************************************/ delay_ms(unsigned long delay) { for(;delay>0;delay--) SysCtlDelay (166666); } //***************************************************************************** // // This example demonstrates how to setup the PWM block to generate signals. // //***************************************************************************** int main(void) { unsigned long ulPeriod; unsigned char AVR_bmp[]= { /*60x47*/ 0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0xFF,0xFF,0xFF,0x7F,0xFF,0xFE,0xFC,0xF0,0xC1, 0x0F,0x7F,0xFF,0xFF,0xFE,0xF0,0xC0,0x00,0x00,0x00,0xC0,0xF8,0xFE,0xFF,0xFF,0x3F, 0x07,0xC1,0xF0,0xFE,0xFF,0xFF,0xFF,0x1F,0x07,0x8F,0xCF,0xFF,0xFF,0xFF,0xFE,0xFC, 0x00,0x80,0xF0,0xFC,0xFF,0xFF,0xFF,0x7F,0x7F,0x78,0x78,0x79,0x7F,0x7F,0xFF,0xFF, 0xFC,0xF0,0xC1,0x07,0x1F,0xFF,0xFF,0xFE,0xFC,0xFF,0xFF,0xFF,0x1F,0x07,0xC1,0xF0, 0xFE,0xFF,0xFF,0x3F,0x0F,0x0F,0x7F,0xFF,0xFF,0xFF,0xFF,0xE7,0x07,0x03,0x01,0x00, 0x02,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, 0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x1F,0x3F,0x1F,0x07,0x00,0x00,0x02,0x03,0x03, 0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00 }; SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |SYSCTL_XTAL_6MHZ); jtagWait(); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE,0xFF); ulPeriod = SysCtlClockGet() / 1000; // while(1) { LCD_init();//初始化液晶 LCD_init(); LCD_clear(); /* if(temp == 0) temp = 1; delay_ms(1); GPIOPinWrite(GPIO_PORTD_BASE,0xFF,temp); temp <<=1; */ { LCD_write_chinese_string(4,0,12,2,0,0); LCD_draw_bmp_pixel(32,0,AVR_bmp,48,24); LCD_write_english_string(0,3," ---bighead--- "); LCD_write_english_string(0,5," QQ: 12345678 "); delay_ms(10); } } } /*********************************** 基于 LM3S811 的 5110 LCD 驱动 移植于许工的驱动... 建立时间 2011/9/16 ***********************************/ /********************************** 指令部分 **********************************/ #define true 1 #define True 1 #define false 0 #define False 0 #define SCLK 0x10 #define SDIN 0x08 #define LCD_DC 0x04 #define LCD_CE 0x02 #define LCD_RST 0x01 /*************************************** 基础函数部分 ***************************************/ void SETBIT(unsigned char operation) { GPIOPinWrite(GPIO_PORTD_BASE,0xFF,(GPIOPinRead(GPIO_PORTD_BASE,0xFF) | operation)); } void CLEARBIT(unsigned char operation) { GPIOPinWrite(GPIO_PORTD_BASE,0xFF,(GPIOPinRead(GPIO_PORTD_BASE,0xFF) & (~operation))); } void CHECKBIT(unsigned char operation) { GPIOPinWrite(GPIO_PORTD_BASE,0xFF,(GPIOPinRead(GPIO_PORTD_BASE,0xFF) & operation)); } /********************************************** 6*8基础字符 **********************************************/ const unsigned char font6x8[][6] = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // ! { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // " { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // # { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $ { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // % { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // & { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // ' { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // ( { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // ) { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // * { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // + { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // , { 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // - { 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // . { 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // / { 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0 { 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1 { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2 { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3 { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4 { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5 { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6 { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7 { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8 { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9 { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // : { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ; { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // < { 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // = { 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // > { 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ? { 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @ { 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C { 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F { 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G { 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H { 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I { 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J { 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K { 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L { 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M { 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P { 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q { 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R { 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S { 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T { 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U { 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V { 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W { 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X { 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y { 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z { 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [ { 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55 { 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ] { 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^ { 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _ { 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // ' { 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a { 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b { 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c { 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d { 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e { 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f { 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g { 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h { 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i { 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j { 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k { 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l { 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n { 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o { 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p { 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r { 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s { 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t { 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u { 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v { 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w { 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x { 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y { 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 } // horiz lines }; const unsigned char HZK[][24]={ //我 {0x8A,0x8A,0x4A,0xFE,0x49,0x28,0x7F,0x88,0x49,0x2A,0x08,0x00,0x00,0x04,0x04,0x07,0x02,0x02,0x01,0x01,0x02,0x04,0x07,0x00}, //爱 {0x18,0x2A,0x2A,0x2E,0xFA,0xAE,0xA9,0xAD,0xAB,0x29,0x18,0x00,0x04,0x04,0x02,0x05,0x05,0x02,0x02,0x05,0x04,0x04,0x04,0x00}, //测 {0x89,0xF2,0x00,0xFF,0x01,0xF9,0xFF,0x00,0xFC,0x00,0xFF,0x00,0x00,0x07,0x04,0x04,0x02,0x01,0x02,0x04,0x01,0x04,0x07,0x00}, //试 {0x11,0xF6,0x00,0x04,0x24,0xE4,0x24,0x24,0xFF,0x05,0x06,0x00,0x00,0x07,0x02,0x01,0x02,0x03,0x01,0x01,0x01,0x02,0x07,0x00}, //程 {0x8A,0x6A,0xFF,0x49,0x20,0xAF,0xA9,0xE9,0xA9,0xAF,0x20,0x00,0x01,0x00,0x07,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x00}, //序 {0x00,0xFE,0x42,0x4A,0x4A,0x5B,0xEA,0x5A,0x4A,0xC2,0x42,0x00,0x06,0x01,0x00,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x00}, //电 {0x00,0xFC,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xFE,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x04,0x06,0x00}, //子 {0x20,0x21,0x21,0x21,0x21,0xF9,0x29,0x25,0x23,0x31,0x20,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00}, //制 {0x18,0xD6,0x54,0xFF,0x54,0x56,0xD4,0x00,0xFC,0x00,0xFF,0x00,0x00,0x03,0x00,0x07,0x00,0x02,0x03,0x00,0x04,0x04,0x07,0x00}, //作 {0x10,0x08,0xFC,0x13,0x08,0x04,0xFF,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x01,0x01,0x01,0x01,0x00}, }; /*--------------------------------------------- LCD_clear: LCD清屏 输入参数 :无 ---------------------------------------------*/ void LCD_clear(void) { unsigned int i; LCD_write_byte(0x0c, 0); LCD_write_byte(0x80, 0); for (i=0; i<504; i++) { LCD_write_byte(0, 1); } } /*--------------------------------------------- delay_1us: LCD延时1us 输入参数 :无 ---------------------------------------------*/ void delay_1us(void) //1us延时函数 { SysCtlDelay (0x0F); } /*--------------------------------------------- LCD_set_XY: LCD置位到X,Y处 输入参数 :X,Y ---------------------------------------------*/ void LCD_set_XY(unsigned char X, unsigned char Y) { LCD_write_byte(0x40 | Y, 0);// column LCD_write_byte(0x80 | X, 0);// row } /*--------------------------------------------- LCD_write_char: LCD写入一个字符 输入参数 :无 ---------------------------------------------*/ void LCD_write_char(unsigned char c) { unsigned char line; c -= 32; for (line=0; line<6; line++) { LCD_write_byte(font6x8[c][line], 1); } } /*------------------------------------------------- LCD_write_english_String : 英文字符串显示函数 输入参数:*s :英文字符串指针; X、Y : 显示字符串的位置,x 0-83 ,y 0-5 --------------------------------------------------*/ void LCD_write_english_string(unsigned char X,unsigned char Y,char *s) { LCD_set_XY(X,Y); while (*s) { LCD_write_char(*s); s++; } } /*------------------------------------------------- LCD_write_chinese_string: 在LCD上显示汉字 输入参数:X、Y :显示汉字的起始X、Y坐标; ch_with :汉字点阵的宽度 num :显示汉字的个数; line :汉字点阵数组中的起始行数 row :汉字显示的行间距 --------------------------------------------------*/ void LCD_write_chinese_string(unsigned char X, unsigned char Y, unsigned char ch_with,unsigned char num, unsigned char line,unsigned char row) { unsigned char i,n; LCD_set_XY(X,Y); //设置初始位置 for (i=0;i
点赞  2011-9-17 14:05
全部左对齐了


发现KEIL的语法要求比ICC严格得多。。。  


发现这问题。。。

        unsigned char AVR_bmp[]=
        {
        /*60x47*/
                0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0xFF,0xFF,0xFF,0x7F,0xFF,0xFE,0xFC,0xF0,0xC1,
                0x0F,0x7F,0xFF,0xFF,0xFE,0xF0,0xC0,0x00,0x00,0x00,0xC0,0xF8,0xFE,0xFF,0xFF,0x3F,
                0x07,0xC1,0xF0,0xFE,0xFF,0xFF,0xFF,0x1F,0x07,0x8F,0xCF,0xFF,0xFF,0xFF,0xFE,0xFC,
                0x00,0x80,0xF0,0xFC,0xFF,0xFF,0xFF,0x7F,0x7F,0x78,0x78,0x79,0x7F,0x7F,0xFF,0xFF,
                0xFC,0xF0,0xC1,0x07,0x1F,0xFF,0xFF,0xFE,0xFC,0xFF,0xFF,0xFF,0x1F,0x07,0xC1,0xF0,
                0xFE,0xFF,0xFF,0x3F,0x0F,0x0F,0x7F,0xFF,0xFF,0xFF,0xFF,0xE7,0x07,0x03,0x01,0x00,
                0x02,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
                0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x1F,0x3F,0x1F,0x07,0x00,0x00,0x02,0x03,0x03,
                0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00
        };

图片的数组只能丢到main函数里 。。。要不然就报错。。。
点赞  2011-9-17 14:07

引用: 原帖由 bighead 于 2011-9-17 14:07 发表 全部左对齐了 发现KEIL的语法要求比ICC严格得多。。。 发现这问题。。。 unsigned char AVR_bmp[]= { /*60x47*/ 0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0xFF,0xFF,0xFF,0x7F,0 ...

 

??不是一样的么,用过MDK2、MDK4、ICCavr6.3a、ICCavr7,没发现这个定义会有区别耶??

倒是如果芯片RAM小的话,用这个unsigned char AVR_bmp[]定义了太大的数组会报错,因为这样定义是放在RAM里的,不是放在代码区。

图片,定义成常量const好点吧。

点赞  2011-9-18 22:08

回复 12楼 David_Lee 的帖子

额。。。实话说是同样的代码 移植到KEIL就不通过了。。


话说const确实好  不过现实动态的图像就不能用const了。。。

[ 本帖最后由 bighead 于 2011-9-22 16:20 编辑 ]
点赞  2011-9-22 16:12
照片0262.jpg
  • 照片0261.jpg
点赞  2011-9-22 16:16
UART 和 定时器都差不多了。。。过几天贴代码。。
点赞  2011-10-6 18:55
唔。。回来了。。

寒假硬盘被格了一次。。好惨。。

好多东西都丢了。。。

看来以后还是要把代码贴出来。。。


唉。。。我错了
点赞  2012-2-22 08:41

回复 16楼 bighead 的帖子

呵呵 那就期待下次的代码咯
加油!在电子行业默默贡献自己的力量!:)
点赞  2012-2-22 09:04

上传刚刚建好的工程模板

上传刚刚建好的工程模板
LM3S1138
Library&Model.rar (653.89 KB)
(下载次数: 6, 2012-2-22 09:07 上传)


使用的时候需要改变库的位置
[ 本帖最后由 bighead 于 2012-2-22 09:08 编辑 ]
点赞  2012-2-22 09:07

顺便上传一个工具

顺便上传一个工具
点赞  2012-2-22 09:12

再上传一个。。



    LM3S1138.rar (2012-2-22 10:10 上传)

    67.21 KB, 下载次数: 7

点赞  2012-2-22 10:10
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复