想請教一下
目前我是使用msp430F449跟cy7c138作單方面的傳輸
但是目前從dualportRAM李讀出的資料並不是我寫入的資料
想請問一下問題出在哪?
謝謝
CY7C138 datasheet
程式源碼
想请教一下
目前我是使用msp430F449跟cy7c138作单方面的传输
但是目前从dualportRAM李读出的资料并不是我写入的资料
想请问一下问题出在哪?
谢谢
CY7C138 datasheet
http://cn.ic-on-line.cn/IOL_CY7C138/PdfView/197663.htm
程式源码
#include <msp430x44x.h>
#include "XT2_Set.h"
#include<stdlib.h>
/*-------------DUAL PORT RAM控制參數設定--------------------------------------*/
#define DIR_HIGH()
P1OUT |= BIT4
//電壓轉換控制.3->5
#define DIR_LOW()
P1OUT &=~(BIT4)
//電壓轉換控制->3.3
#define RW_HIGH()
P1OUT |= BIT3
#define RW_LOW()
P1OUT &=~(BIT3)
#define CE_HIGH()
P1OUT |= BIT2
#define CE_LOW()
P1OUT &=~(BIT2)
#define OE_HIGH()
P1OUT |= BIT1
#define OE_LOW()
P1OUT &=~(BIT1)
#define EG_HIGH()
P1OUT |= BIT0
#define EG_LOW()
P1OUT &=~(BIT0)
//栓鎖器所住位置
#define NOP(){_NOP();_NOP();_NOP();_NOP();_NOP();}
unsigned int DATA=0,tu[10];
unsigned int sum=0,i;
void DPW(unsigned int,unsigned int);
void Init_DUALPORTRAM(void);
unsigned int DPR(unsigned int);
/*-------------DUAL PORT RAM控制參數設定END-----------------------------------*/
void main(void)
{
for(i=0;i<10;i++)
//對個位置發送資料
{
sum=240;
DPW(i,sum);
}
for(i=0;i<10;i++)
//對地址-9讀取資料
tu=DPR(i);
}
void Init_DUALPORTRAM(void)
{
P1SEL=0;
P6SEL=0;
P1DIR=0xdf;
//設為bit5為輸入(BUSY),其餘為輸出
P6DIR=0xff;
//設為輸出
OE_HIGH();
RW_HIGH();
EG_LOW();
CE_HIGH();
return;
}
void DPW(unsigned int address,unsigned int data)
{
Init_DUALPORTRAM();
DIR_LOW();//B到A(電位轉換)
//_NOP();
P6OUT=address;// ADDRESS
EG_HIGH();
EG_LOW();//將ADDRESS拴住
CE_LOW();
NOP();
RW_LOW();
P6OUT=data;//送出資料
NOP();
RW_HIGH();
CE_HIGH();
}
unsigned int DPR(unsigned int address)
{
Init_DUALPORTRAM();
CE_LOW();
DIR_LOW();//B到A(電位轉換)(先傳ADDRESS)
//_NOP();
P6OUT=address;// ADDRESS
EG_HIGH();
//NOP();
//NOP();
EG_LOW(); //將ADDRESS拴住
DIR_HIGH();//A到B(電位轉換)
P6DIR=0x00;//設為輸入
OE_LOW();
NOP();
DATA=P6IN;
// NOP();
CE_HIGH();
OE_HIGH();
return DATA;
}
硬体方面有使用3.3V与5V之间的转换IC (DIR)
与栓所器所住位置(EG)
[
本帖最后由 riddle 于 2009-8-14 11:58 编辑 ]
此帖出自
小平头技术问答
一周热门 更多>