PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 19-05-2013, 12:46 AM   #34
pvthang123456
Nhập môn đệ tử
 
Tham gia ngày: Jan 2013
Bài gửi: 2
:
các bác ơi. ai giup mình viết lại đoạn code này thành HTC được ko, chứ viết kiểu này mình ko hiểu, cho mình hỏi lun mấy cai thông số cài đặt timer0 là sao vậy
"#include<p18f4550.h>
#pragma config FOSC = HSPLL_HS // Using 20 MHz crystal with PLL
#pragma config PLLDIV = 5 // Divide by 5 to provide the 96 MHz PLL with 4 MHz input
#pragma config CPUDIV = OSC1_PLL2 // Divide 96 MHz PLL output by 2 to get 48 MHz system clock
#pragma config USBDIV = 2 // USB clock comes from 96 MHz PLL output / 2
#pragma config IESO = OFF // Disable Oscillator Switchover mode
#pragma config PWRT = OFF // Disable Power-up timer
#pragma config BOR = OFF // Disable Brown-out reset
#pragma config VREGEN = ON // Use internal USB 3.3V voltage regulator
#pragma config WDT = OFF // Disable Watchdog timer
#pragma config MCLRE = ON // Enable MCLR Enable
#pragma config LVP = OFF // Disable low voltage ICSP
#pragma config ICPRT = OFF // Disable dedicated programming LAT (44-pin devices)
#pragma config CP0 = OFF // Disable code protection

void timer0_2500();
void capnhat(),test_tay(),dungyen();
void ngatmuccao(void);
void timer0_10();
volatile unsigned char i=0,j=0,H=0xFF,L=0xE1;
volatile unsigned int pulse_max,pulse_top,set = 2000;

//--------------------------------------------------------------------
volatile unsigned int SERVO[16];

void delay_us( int x)
{
int i;
for(i=0;i<x;i++)
{}

}
void delay_ms( int x)
{
int i;
for(i=0;i<x;i++)
{
delay_us(1000);
}
}

void timer0_10()
{
T0CONbits.TMR0ON = 0; // timer off
T0CONbits.T0PS0 = 1; //1:4 PRESCALER
T0CONbits.T0PS1 = 0;
T0CONbits.T0PS2 = 0;
T0CONbits.PSA = 0;
T0CONbits.T0SE = 0;
T0CONbits.T0CS = 0; // CLK SOURCE
T0CONbits.T08BIT = 0; //16 BIT TIMER
RCONbits.IPEN = 1; //enable priority levels
INTCONbits.TMR0IE = 1; // enable interrupts, disable toan bo ngat chi cho phep ngat TMR0
INTCON2 = 0x04; //thiet lap TMR0 la ngat uu tien cao
INTCONbits.GIEH = 1; //cho phep ngat toan cuc
TMR0L = L;
TMR0H = H;
T0CONbits.TMR0ON = 1; // timer on
}
void main()
{
TRISD = TRISE = TRISBbits.TRISB4 = TRISBbits.TRISB5 = TRISAbits.TRISA4 =0;

/* TRISBbits.TRISB4 = 0;
TRISBbits.TRISB5 = 0;


TRISEbits.TRISE2 = 0;
TRISEbits.TRISE1 = 0;
TRISEbits.TRISE0 = 0;
TRISDbits.TRISD0 = 0;
TRISDbits.TRISD2 = 0;
TRISDbits.TRISD1 = 0;*/

LATD = 0X00;
timer0_10();
//-------------------------------------------------------
//vay tay chao
SERVO[2]=1920; //gap vai trai giua
SERVO[3]=1959; //gap vai phai giua
delay_ms(100);
SERVO[0]=1885;//tay trai xuong
delay_ms(100);
SERVO[1]=1870;//tay phai len
delay_ms(100);
// vay tay chao--------
for (i=0;i<3;i++)
{
SERVO[3]=1965; //gap vai phai len
SERVO[4]=1900; //quay dau sang trai
delay_ms(100);
SERVO[3]=1930; //gap vai phai xuong
SERVO[4]=1945; //quay dau sang phai
delay_ms(100);
}

while(1)
{
test_tay();

}

}


// vec to ngat uu tien cao

#pragma code InterruptVectorHigh=0x08
void InterruptVectorHigh(void)
{
_asm
goto ngatmuccao //nhay toi chuong trinh ngat
_endasm
}

//----------------------------------------------------------------------------
// chuong trinh ngat muc uu tien cao

#pragma code
#pragma interrupt ngatmuccao

void ngatmuccao() {

if (INTCONbits.TMR0IF) {
pulse_max++; // Pulse Max Increment
pulse_top++; // Pulse Top Increment

if (pulse_max >= set)
{
pulse_max=0;
pulse_top=0;
LATD = 0X00;
LATE = 0X00;

}

if (pulse_top == SERVO[0]) LATDbits.LATD0 =1; //vai trai
if (pulse_top == SERVO[1]) LATDbits.LATD1 =1; //canh trai
if (pulse_top == SERVO[2]) LATDbits.LATD2 =1;
if (pulse_top == SERVO[3]) LATDbits.LATD3 =1;
if (pulse_top == SERVO[4]) LATDbits.LATD4 =1;
if (pulse_top == SERVO[5]) LATDbits.LATD5 =1;
if (pulse_top == SERVO[6]) LATDbits.LATD6 =1;
if (pulse_top == SERVO[7]) LATDbits.LATD7 =1;

if (pulse_top == SERVO[8]) LATEbits.LATE2 =1; //vai phai
if (pulse_top == SERVO[9]) LATEbits.LATE1 =1; //canh phai
if (pulse_top == SERVO[10]) LATEbits.LATE0 =1;
if (pulse_top == SERVO[11]) LATAbits.LATA4 =1;
if (pulse_top == SERVO[12]) LATBbits.LATB5 =1;
if (pulse_top == SERVO[13]) LATBbits.LATB4 =1;
if (pulse_top == SERVO[14]) LATBbits.LATB3 =1;
if (pulse_top == SERVO[15]) LATBbits.LATB2 =1;

TMR0L = L;
TMR0H = H;
INTCONbits.TMR0IF = 0;
}
}

"
pvthang123456 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Cách giao tiếp DS1877 và PIC6F877A nbqvdp Cơ bản về vi điều khiển và PIC 7 05-08-2010 06:46 PM
Hỏi về chương trình HTPIC của ngohaibac riquelme Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 26 20-01-2007 09:42 PM
Giúp đỡ về HTPIC riquelme Cơ bản về vi điều khiển và PIC 0 11-01-2007 11:56 PM
Giao tiếp Pic6f877A qua cổng máy in???? spirit Cơ bản về vi điều khiển và PIC 8 11-09-2006 01:04 PM


Múi giờ GMT. Hiện tại là 03:15 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam