查看: 2035|回复: 1
|
C18 16bit Timer0
[复制链接]
|
|
#include<p18cxxx.h>
#include<delays.h>
#include<timers.h>
//
PIC18F14K50
#pragma config CPUDIV = NOCLKDIV
#pragma config USBDIV = OFF
#pragma config FOSC = HS
#pragma config PLLEN = ON
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRTEN = OFF
#pragma config BOREN = OFF
#pragma config BORV = 30
#pragma config WDTEN = OFF
#pragma config WDTPS = 32768
#pragma config MCLRE = OFF
#pragma config HFOFST = OFF
#pragma config STVREN = ON
#pragma config LVP = OFF
#pragma config XINST = OFF
#pragma config BBSIZ = OFF
#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CPB = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRTB = OFF
#pragma config WRTC = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
#pragma config EBTRB = OFF
void tmr0_interrupt (void);
#pragma code low_prioridad = 0X00018
void low_interrupt (void)
{
_asm goto tmr0_interrupt _endasm
}
#pragma code high_interrupt = 0x8
void high_interrupt (void)
{
}
void tmr0_interrupt(void)
{
INTCONbits.TMR0IF = 0;
INTCONbits.GIEL = 1;
WriteTimer0(200);
LATAbits.LATA5 =! LATAbits.LATA5;
}
#pragma code
void main(void)
{
TRISA = 0x00;
TRISB = 0x00;
TRISC = 0x00;
PORTA = 0;
PORTB = 0;
PORTC = 0;
OpenTimer0 (T0_16BIT & T0_SOURCE_INT & T0_EDGE_RISE & T0_PS_1_1);
RCONbits.IPEN = 1;
INTCONbits.GIE = 1;
INTCONbits.GIEL = 1;
INTCONbits.TMR0IE = 1;
INTCON2bits.TMR0IP = 0;
LATAbits.LATA4 = 1;
WriteTimer0(200);
while(1);
}
我换 T0_16BIT 成 T0_8BIT 可以用。看来看去,想来想去,就是想不通。。 |
|
|
|
|
|
|
|
发表于 31-8-2011 10:37 PM
|
显示全部楼层
回复 1# davidtung89
不如你跟版规来发问, 然后整理一下你的code, 用c“代码”来插入你的code,我才回答你。 :) |
|
|
|
|
|
|
| |
本周最热论坛帖子
|