-"왜 내 89S uc Ds12887와 함께 할 때 인터럽트 interfce 수없습니다

H

hbaocr

Guest
uc "-"Ds12887
P0 "-"AD0 - 7
INT1 "-"IRQ를
................
내가 테스트를 가지고, 그리고 나는 uc 방해 찾을 수없습니다.
코드 :

# ""REG52.h 포함

# ""ABSACC.h 포함/ / RTC를위한 몇 가지 변수를 정의합니다

P2의 RTC 정의 #

RTC_RegA 0x000A 정의 #

RTC_RegB 0x000B 정의 #

RTC_RegC 0x000C 정의 #

# 0x000D RTC_RegD 정의

RTC_RegSecond 0x0000 정의 #

RTC_RegMinute 0x0002 정의 #

RTC_RegHour 0x0004 정의 #

RTC_RegDayofweek 0x0006 정의 #

RTC_RegDayofmonth 정의 # 0x0007

RTC_RegMonth 0x0008 정의 #

RTC_RegYear 0x0009 정의 #

sbit INT = P3 ^ 3;

/ / 함수 선언

무효 SetRTC (무효);

/ / main 함수메인 무효 ()

(

/ / INT1 설정

INT = 1; / / Cong nhap

인터넷 익스플로러 = 0x84; / / 쵸 phep ngat ngoai 1

IT1 = 1; / / ngat canh xuong

P2 = 0x0F;

SetRTC;

(1) 동안

(;

/ / P2 = PBYTE [0];

))

//=========== chuong trinh Phuc 봤다 ngat ========================

/ / ngat ngoai 1

무효 RTC_READY (무효) 2 인터럽트

(

서명 숯불 캐럿;

EX1 = 0; / / 캠 ngat

P2 = PBYTE [0];

캐럿 = PBYTE [RTC_RegC]; / / xoa 탄 ghi C

EX1 = 1; / / 쵸 phep ngat 라이)//==========의 RTC 설정 ========================

무효 SetRTC (무효)

(

서명 숯불 마세요;

/ / CAC는 비트 thnah ghi trong B 조

/ / 설정 PIE 알렌 UIE SQWE 디엠 12분의 24 DSE

PBYTE [RTC_RegB] = 0x80으로; / / = 1로 설정 O를 체 뒤 대신에 업데이 트가 공동으로 타 쫓아 ghi ghi 할 CAC는 탄

/ / 탄 ghi

/ / UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 = 10100000/ / 뚜껑을 Nhat 라이 쵸의 RTC

PBYTE [RTC_RegSecond] = 0; / / 뚜껑을 Nhat 뒤 대신에

PBYTE [RTC_RegMinute] = 0;

PBYTE [RTC_RegHour] = 0;

/ / KET thuc 모자 NhatPBYTE [RTC_RegA] = 0xa0을; / / DV2 DV1 DV0 = 010 OSC에

PBYTE [RTC_RegB] = 0x12; / / UIE = 1 인터럽트 upate했다 활성화

/ / 디엠 = 0 데이터를 BCD 모드 12분의 24 = 1 24

/ / = 0 자동 업데이 트를 데이터 집합

마 = PBYTE [RTC_RegC]; / / xoa regC

)
 
그 IRQ를의 오픈 드레인 출력, 그것 pullup 저항을 연결해야하는 것 같습니다.만약 P3 ^ 3 고등학교가는 당신의 코드에서, 당신 - 낮은 인터럽트 트리거됩니다 IT1 = 1, thet 의미로 설정합니다.
만약에 아무 방해하고있다 그래서 내가 생각하는 오픈 드레인 IRQ가있다면, 그것부터 고가부터 Z 상태이며, pullup 저항을 사용하여 다음 출력이 높은 것입니다.그리고 때되면 IRQ를 다음 P3 낮은 될 것입니다 ^ 3 - 투 - 저전압 고속을 얻는다면, uc 인터럽트 인터럽트 트리거됩니다.

라이언

 
안녕하세요, RDRyan
귀하의 도움을 주셔서 감사합니다.하지만 난 이미 VCC는 그 핀에 저항 올려있다.왜 내 uc Ds12887 업데이 트를 할 때 데이터가 끝난 방해하지.

 
귀하의 probem 문제를 해결하려면, 난 당신이 흐름에 따라해야한다고 생각 :

첫째, 체크하면 P3에서 부정적인 클럭 전압주고 ^ 3 여부 uc 인터럽트 tirgger 것입니다.좋아, 그럼 두 번째 확인합니까이다 방해하는 경우.그렇지 않다면, 설정 레지스터, 인터럽트 허용됩니다 respons 인터럽트 uc 보험에 확인하시기 바랍니다.

둘째, 대 여부 Hight - IRQ를 핀 저가 변화가 있는지 Ds12887 IRQ를 사용하는 오실로 그래프를 확인하시기 바랍니다.그렇지 않다면, Ds12887 귀하의 초기화 설정을 확인하시기 바랍니다.

디버깅에, 그것을이다 성공을 유지!행운을 빕니다!

라이언

 

Welcome to EDABoard.com

Sponsor

Back
Top