全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1345
推到 Plurk!
推到 Facebook!

HCTL 2032問題

缺席
pray7th
一般會員


發表:1
回覆:1
積分:0
註冊:2011-01-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-01-20 00:02:48 IP:114.37.xxx.xxx 訂閱
小弟現在大三做專題的關係接觸到這顆ic
這一兩天在測這顆ic

環境
1.使用LEGO NXT MOTOR
2.使用一組AB, 4x, 讀X的MSB資料
3.使用8051去控(下面是程式碼)
4.直接插麵包板 測是否有計數&計數結果(電路在下面)
5.使用24MHz CLK

測試方式
1.程式先執行reset, 我用手轉動馬達, 再執行外部中斷讀MSB資料
2.手動測式是不執行reset 直接改變OEN 讀取MSB

可是我的結果是旋轉馬達時D0~D7會全亮跟全滅(使用麵包板)
照理說意給AB訊號後會自動計數, 可是我的CNTDECx 完全不會變化...

現在有幾個使用上的問題
1.CHIx CHIy 是否要接?
2.CLK是否一定要33MHz? 我用的是4隻腳的震盪ic(24M)
3.如何測是ic是否工作正常?
4.測試方式是否有誤?

非常感謝回答

麵包板電路
測試程式
#include "reg_mpc82g516.h"
sbit EN1=P1^0;
sbit EN2=P1^1;
sbit SEL1=P1^2;
sbit SEL2=P1^3;
sbit OEN=P1^4;
sbit RSX=P1^5;
sbit RSY=P1^6;
sbit XNY=P1^7;
unsigned char sta;
void Delay(unsigned int);

main()
{
EA=1; EX0=1; IT0=1; //中斷啟用

EN1=1; EN2=1;
XNY=0;
SEL1=1; SEL2=1;
OEN=0;
RSX=0; RSY=0; //Reset
Delay(10);

while(1){ }
}

void A() interrupt 0 using 1 //中斷函式
{
if(sta==2)
{
sta=0;
}
if(sta==0)
{
RSX=1; RSY=1; //Count
OEN=0;
sta=sta 1;
}
else
{
RSX=1; RSY=1; //Read MSB
OEN=1;
Delay(10);
OEN=0;

sta=sta 1;
}
}
void Delay(unsigned int a)
{
int b;
while(a--)
{
for(b=100;b>0;b--);
}
}

編輯記錄
pray7th 重新編輯於 2011-01-19 09:04:25, 註解 無‧
pray7th
一般會員


發表:1
回覆:1
積分:0
註冊:2011-01-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-01-20 17:08:37 IP:140.126.xxx.xxx 訂閱
自己解決

Data Select 讀LSB就有了="=
系統時間:2024-04-24 7:11:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!