-
MCLK
SDO
SDOFS : SDO串行传输的帧信号输出
SDI
SDIFS:SDI串行传输的帧信号输入
cs
-
或者随便下一个st官方开发板的开发包, 比如:
http://www.st.com/stonline/produ ... ro/files/um0834.zip
-
单独使用LCD是好的,单独使用SRAM也是好的,然后将两个合并,就不行了,代码如下
-
请问你说的是哪个中断向量?
我是初学者,不明白。感觉就是进不了中断程序。
-
google 一下或者百度一下,肯定很多这样的QQ群,不过,人气旺不旺,就难担保了。。。
-
-
capsky给我一个WinCE6.0的control.exe
hsbeer@yeah.net
-
#include "../include/msp430x41x2.h"
#include "../include/ir.h"
#include "../include/e2rom.h"
#include "../include/time.h"
#include "../include/lcd.h"
#define ir_power_on() P1OUT |= BIT0
#define ir_power_off() P1OUT &= ~BIT0
#define ir_out0() P3OUT &= ~BIT1
#define ir_out1() P3OUT |= BIT1
typedef struct
{
u8 carrier_cycle; //载波周期时间
u8 num; //字节数
u16 lead_h; //引导高载波周期
u16 lead_l; //引导低时间
u16 bit1_high; //位1 高电平载波周期
u16 bit0_high; //位0 高电平载波周期
u16 bit1_low; //位1 低电平时间
u16 bit0_low; //位0 低电平时间
u8 bit_num_last_data;
u8 data[15]; //数据
} ir_code_t; //15 + 15
const u16 ir_config_addr[5] = {IR_CONFIG1_ADDR,IR_CONFIG2_ADDR,IR_CONFIG3_ADDR,IR_CONFIG4_ADDR,IR_CONFIG5_ADDR};
volatile u8 recv_int_flag = 0; //接收中断标志
volatile u8 recv_int_stop_flag = 0;
volatile u16 ta1_overflow = 0;
u16 recv_carrier_cycle = 0; //每次接收载波周期
u16 count_bit = 8; //学习数据位计数
ir_code_t ir_code; //红外码变量
void ir_init(void)
{
P1DIR |= BIT0; //电源控制输出
ir_power_off();
ir_out0();
P3DIR |= BIT1; // P3.1 output
P3SEL |= BIT1 + BIT0; //P3.1 P3.0 option select
}
void ir_stop(void)
{
TA1CTL = 0;
//TA1CCTL0 = 0;
TA1CCTL2 = 0;
TA1CCTL3 = 0;
}
//TA1 1MHZ capture
u8 ir_ta1_capture_1mhz(void)
{
u8 step = 0;
ta1_overflow = 0;
while (ta1_overflow < 154)
{
if (recv_int_flag)
{
recv_int_flag = 0;
switch (step)
{
case 0: //接收到IR信号,准备接收
TA1CCTL2 &= ~CM_1;
TA1CCTL2 |= CM_2;//neg.
recv_carrier_cycle = 0;
ir_code.carrier_cycle = 0xff;
ir_code.bit0_high = 0;
ir_code.bit0_low = 0;
ir_code.bit1_high = 0;
ir_code.bit1_low = 0;
ir_code.lead_h = 0;
ir_code.lead_l = 0;
ir_code.num = 0;
for (u16 i = 0; i < 16; i++)
{
ir_code.data = 0;
}
count_bit = 8;
recv_int_stop_flag = 0;
ta1_overflow = 0;
step = 10;
break;
case 10://判断是否有载波
if (recv_carrier_cycle > 1000)//no
{
ir_code.lead_h = recv_carrier_cycle;
ir_code.carrier_cycle = 0;
TA1CCTL2 &= ~CM_2;
TA1CCTL2 |= CM_3;//both
step = 11;
}
else
{
TA1CCTL2 &= ~CM_2;
TA1CCTL2 |= CM_1;//pos.
step = 1;
}
break;
case 1: //开始接收,解码载波周期
ir_code.lead_h ++; //引导码高电平加1
if ((ir_code.lead_h > 10) && (20 < recv_carrier_cycle) && (recv_carrier_cycle < 30))//33k-50k
{
ir_code.carrier_cycle = recv_carrier_cycle; //记录载波周期
step = 2;
}
break;
case 2: //解码引导码
if (recv_carrier_cycle >> 8)
{
ir_code.lead_l = recv_carrier_cycle - ir_code.carrier_cycle;//记录引导码低电平
step = 3;
}
else
{
ir_code.lead_h ++; //引导码高电平加1
}
break;
case 3: //解码数据bit1
if (recv_carrier_cycle >> 8)
{
ir_code.bit1_low = recv_carrier_cycle - ir_code.carrier_cycle;//记录数据bit1低电平
ir_code.data[ir_code.num] 8)
{
recv_carrier_cycle -= ir_code.carrier_cycle; //低电平时间
if (((recv_carrier_cycle
-
学习关注
-
请问怎么添加呢?我在.asm这么定义的
.sect "indata"
x .copy "IN6.dat"
在IN6.dat中这么编辑的
1651 1 F000 1 C8
0x0056
0x1234
...
结果和楼主一样报错
请不吝赐教
-
会不会是踩点踩的次数太多了?
-
建议楼主看看这篇文章:
网址:http://hi.baidu.com/%E7%8B%BClove2008/blog/item/a4f660229f255faf4723e838.html
-
OALPAtoCA这个问题我也不清楚~~~
为什么要转化到cache区...............为什么有些要放到静态映射虚拟地址(无缓冲区),为什么有些又要放到静态映射虚拟地址(缓冲区).
我认为应该都要放到缓冲区~呵呵~~~当然这肯定是错的
-
广告.......,有需要的去去培训下吧。
-
引用 11 楼 yashi 的回复:
你修改的文件是哪个目录下的?
D:\WINCE500\PBWorkspaces\zxz\RelDir\Z228_ARMV4I_Release这个目录下的project.bib
-
无图无真相。
这是STM32的SPI框图:
STM32_SPI_Block_Diagram.GIF
(19 KB)
下载次数:0
2009-12-28 11:37
-
Veabol 真是热心人,我也凑数
-
谢谢两位。。
问题解决。。。
这批买回的FLASH全是假的。。
很生气。。
-
我也是刚刚起步,不太清楚那个嵌入式LINUX方向比较有钱途啊??
哈哈,不要笑我,比较俗点。。。
缺钱啊。。。
-
引用 59 楼 seemknow 的回复:
格式化后的SD卡,用physical打开,start sectors就看到MBR。用logical打开,boot sector是DBR。未分区的是啥格式,那个RAW吗?没留意过
两种方式打开后,我以前都试过。。。看到的是一样的0x数据,唯一不同的是:用logical打开时,“访问目录”下没有分区\分区表及分区表模块选项。。。
访问\分区表(模块):显示Master boot Record,其中就有“Master bootstrap loader code”,不过,其中的数值还是DBR的标准开头“EB 58 90 ”。。。。
我在一篇论文看到这样的话:SD卡是不支持多分区,即,只有一个分区,DPT中只有一个分区的信息。第0扇区就是DBR。。。