View Single Post
Old 01-11-2010, 04:37 PM   #1
hoathanlq
Nhập môn đệ tử
 
Tham gia ngày: Jul 2009
Bài gửi: 4
:
Unhappy Pro xem hộ chương trình giao tiếp SPI

Có pro nào xem hộ mình với....Mình dùng 2 PIC :
16F887 làm master...
16F690 làm slave...
kết nối phần cứng ok...Thế mà mãi không chạy.....
Mục đích chương trình là: Master đo ADC rồi truyền qua SPI, Slave nhận giá trị ADC bên Master rồi hiển thì qua cổng Com mt.....

Code bên 16F887:

#include "D:\PIC\c_pic\test1\SPI truyen.h"
#include <float.h>
#include <stdio.h>
#use rs232(baud=19200,parity=n,xmit=pin_a7,rcv=pin_a1)
//#use spi(DI=PIN_B1, DO=PIN_B0, CLK=PIN_B2, ENABLE=PIN_B4, BITS=8)
#use spi(force_HW)
int8 x,z,n;
float y;
void ADC(void)
{
//x++;
//delay_ms(z);
x=read_adc();
output_d(read_adc());
if (input(pin_a2)==0)
{
z=0;
delay_ms(2000);
y=read_adc()*4.97/255;
printf("Gia tri ADC: %f (v) \r\n ",y);
}
else z=500;
}

void main()
{

setup_adc_ports(sAN0|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_64);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
setup_oscillator(OSC_8MHZ);
set_tris_d(0);
set_tris_a(7);
set_tris_c(16);
set_adc_channel(0);
// TODO: USER CODE!!
while (1)
{
ADC();
spi_write(x);
}
}



Code cho Slave 16F690:

#include "D:\PIC\c_pic\test1\SPI nhan.h"
#use rs232(baud=19200,parity=n,xmit=pin_c4,rcv=pin_b7)
int8 x;

void main()
{

setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SLAVE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
enable_interrupts(INT_TBE);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
setup_oscillator(OSC_8MHZ);
set_tris_c(0);
// TODO: USER CODE!!
//lai:
do
{

//while(spi_data_is_in()==true)
//{
if (spi_data_is_in())
{
x=spi_read();
printf ( "Gia tri SPI nhan duoc la: %u \r\n",x);
delay_ms(2000);
}
}
while(1);
//}
//else goto lai;
}



Các thứ khác đã ngon...chỉ có SPI không chạy??????????? Có pro nào xem hộ mình thiết lập mode SPI đúng chưa???? Sai chỗ nào không???????
hoathanlq vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn