그림 timer0

Z

zahidkhan

Guest
모두 안녕
무슨 그림 timer0에 대한
1 ms 또는
1 초 방해를 생성하는 절차입니다.
안부 ...

 
W jakich sytuacjach, korzystając z sieci, narażamy swoje dane i tożsamość na największe ryzyko? Poniżej sześć najczęstszych błędów popełnianych przez użytkowników internetu i sposobów, jak im przeciwdziałać.

Read more...
 
안녕,

그것은 매우 쉬운 ...
우선 가장 importnat 당신이
그 타이머에 도달하는 경우에만 그들은 결국 어떻게 될 방해 아는 것입니다, 즉 0xFFFF 1.
그래서줍니다이있다, 당신은 4MHz에서, 그리고 당신의 배 dosnt 외부 OSC를 사용하는 모든 prescalar 또는 postscale 설정했습니다.당신은 타이머로 OSC를 사용하고있습니다.
그래서 interup를 얻으려면, 먼저 타이머 incramet 것이다 얼마나 빨리 알아야합니다.이 4 년까지은 PIC의 MIPS의 (그게 OSC 다이빙)을 누른 다음 도메인 cahnge 시간에 이루어집니다 :
F = OSC / 4 = 4,000,000 / 4 = 1,000,000 또는는 1MHz
시간에 도메인 :
T는 = 1 / f를 = 1 / 1, 000,000 = 0.000001 초 = 1uSec
그래서 당신 타이머 모든 1uSec incrament 것이다.당신이해야 할 것입니다 1mSec를 얻으려면 :
1mSec/1uSec = 1000 클럭 사이클.
타이머로 난 단지 그것과 함께 끝까지 갈 것입니다 interupr 전에, 그래서 결국 우리가 데리고 가서는, 즉 클럭 사이클을 통과 될 필요가 있다고 빼기 이제 우리는이 설정과 함께 타이머를 로드할 필요가 :
우리가 원하는 TMR0 = 0xFFFF - (시간) = 0xFFFF - 0x03E8 (1000 16 진수로) = 0xFC17
이것은 매우 PC의 계산기와 관련있어, 당신이
12 월 16 진수로 쉽게 바꿀 수있게됩니다.버튼 하나.
그래서 우리가 가지고있는 대답 0xFC17입니다.귀하의 타이머에 당신은 모든 1mSec 방해를 얻을 것이다 하중이 값을 각 시간과 누른.
이제 주위를 재생할 수있습니다는지 알아낼, 뭘 얻을 수있는 최대 시간입니다.그리고 난 당신은 자신의 원래 클럭 사전 - scalare 책략을 사용해야 더욱 divid.더 많은 정보에서 데이터 시트에있는 그림을 참조하십시오.
.
( NO
points will be taken from you! And you will get 3 Points)만약 당신이 내 대답은,

그 날. 도와주라고 버튼을 클릭 유용한
발견

(어떠한
지점에서 촬영한 것입니다! 그리고 당신은

3 포인트를 얻을 것이다)행운을 빕니다.

 
TMR0하지만 그것은
8 - 비트 타이머는 256 즉, 최대 저장할 수있습니다.밤은 그래?. 0xFC17와 함께
우리가 어떻게 그것을 로드할 수있습니다.
감사합니다

 
당신 말이 맞아요 :
8 - TIMER0 비트 타이머 ..

이것 좀 보라 구 :
인용구 :

간편하고 빠른 시스템에서 신뢰성있는 타이머 마침표를 얻으려면

a은 PIC 컨트롤러.

이 시스템은 (PIC는 어셈블러 소스)로 제공됩니다 간단한 제공,

모든 클럭 속도에서 빠른 방법은 PIC와 함께 정기적인 기간을 생성합니다.

그레이트 간단한 시계처럼 일초 행사.
언제든지 사용할 수있습니다

크리스탈, 4.0 MHz의 12.137253 MHz 이상, (임의의 크리스탈)과 아무것도

prescaler 가치, 그리고 여전히 완벽한 타이밍 일초.

많은 초, 밀리초에서 안정 기간이 생성됩니다

아주 빠른 코드 실행.
 
여기를 계산하는 방정식의 :

기간 = (256 - TMR0) * () * (Prescaler)
4/fosc
예를 들어, 만약 기간 = 1 MS와 fosc = 4 MHz와 Prescaler 1:4 사용

1ms = (256 - TMR0) (1us) (1)
TMR0 = 6 = 0x06

이것은 타이머 0 레지스터에로드해야합니다 thevalue이다.기억나는 타이머를 설정 후 타이머 인터럽트 타이머 때마다 분명한 깃발을 방해가 발생합니다.도 불분명하기 때문에 다른 어떤 것이라고 깃발을 방해 방해 방해 방아쇠 글로벌 함께 조심하세요.1 들어 기간은 적합한 적절한 값을 선택 prescaler.* 타이머
0 기억에만 8 - 비트입니다.주문
있음, 16 비트 타이머를 사용하여 더 정확한 타이밍있다.

모든 최상.

 
안녕,

zahidkhan 썼습니다 :

TMR0하지만 그것은 8 - 비트 타이머는 256 즉, 최대 저장할 수있습니다.
밤은 그래?. 0xFC17와 함께 우리가 어떻게 그것을 로드할 수있습니다.

감사합니다
 
유 모두 감사합니다.지금 나는 내 개념을 명확지고있습니다.하지만 코드에 약간 문제가 시계를 생성합니다. 난 프로톤 사용 . 여기는 코드입니다.

장치 16F84A

XTAL = 4.0

선언 Lcd_DTPin PortB.4
선언 Lcd_ENPin Portb.3
선언 Lcd_RSPin Portb.2심볼 T0IF = INTCON.2 'TMR0 오버플로 인터럽트 신고
심볼 T0IE = INTCON.5 'TMR0 오버플로 인터럽트를 활성화
심볼 GIE = INTCON.7 '글로벌 인터럽트 활성화
심볼 PS0 = OPTION_REG.0 'Prescaler 속도 선택
심볼 PS1 = OPTION_REG.1 'Prescaler 속도 선택
심볼 PS2 = OPTION_REG.2 'Prescaler 속도 선택
심볼 PSA의 = OPTION_REG.3 'Prescaler 할당
심볼 T0CS = OPTION_REG.5
DIM 미시시피로 Word

DIM 두번째 그대로 바이트
DIM 분 바이트
DIM 시각 바이트

PS0 = 1
PS1 = 0
PS2 = 0
PSA의 = 0

T0CS = 0 '내부 오실레이터를위한 클럭 소스 설정
= 0 'T0IF 분명한 깃발을 방해
T0IE = 1 '방해 tmr0 활성화
GIE = 1 '글로벌 인터럽트 활성화

TMR0 = 6

인터럽트 InterruptServiceRoutine에서 고토

프로그램의 GoTo 대문 '를 시작, 곧바로 주요 점프사용 안함 '을 해제하는 인터럽트
InterruptServiceRoutine :

= 0 'T0IF 분명한 깃발을 방해TMR0 = 6

INC 석사
미시시피면> = 999 필한테
석사 = 0
INC 두번째
후계자가된다면> = 59 필한테
두번째 = 0
INC 할인
할인면> = 59 필한테
할인 = 0
INC 시간
ENDIF
ENDIF
ENDIF
재개 '돌아 돌아의 주요 코드가 실행되었습니다
'전에 인터럽트
사용 '을 다시 enanble interupts

대문 :

인쇄 1,1시, 12 시간, "", 12 분, "", 12 월 둘째, "", 12 월 석사
GoTo 대문

 

Welcome to EDABoard.com

Sponsor

Back
Top