PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   giao tiep pic voi ISD4002 (http://www.picvietnam.com/forum/showthread.php?t=6820)

hoahiep1959 10-08-2010 06:23 PM

giao tiep pic voi ISD4002
 
tôi viết 1 đoạn code cho Pic18f4431 giao tiep Isd4002 bằng PICC nhưng nó không chạy.Tôi dùng driver cua con ISD4002 có sẳn trong PICC.ai có kinh nghiệm coi thử giùm tôi viết đúng ko? cảm ơn anh em!

#include "C:\Program Files\PICC\Drivers\isd4003.c"
#int_RB
void RB_isr(void)
{
delay_ms(40);
disable_interrupts(INT_RB);
if (!input(PIN_B7))
{
output_d(0b10000000);
record_message(0b00000011) ;
delay_ms(40);
break;
}
if (!input(PIN_B6))
{
output_d(0b01000000);
play_message(0b00000011);
delay_ms(40);
break;
}
if (!input(PIN_B5))
{
output_d(0b00100000);

stop_message();
delay_ms(40);
break;
}
if (!input(PIN_B4))
{
output_d(0b00010000);


break;
}
enable_interrupts(INT_RB);
}



void main()
{

setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF|ADC_TAD_MUL_0|ADC_WHEN_INT0|ADC_ INT_EVERY_OTHER);
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_4);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
enable_interrupts(INT_RB);
enable_interrupts(GLOBAL);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

// TODO: USER CODE!!
while(1)
{
output_d(0b00010000);
delay_ms(200);
output_d(0b00000000);
delay_ms(200);
}
}

semipower 10-08-2010 10:20 PM

Nhân tiện cho mình hỏi #int_RB là gì nhỉ ?!

hoahiep1959 10-08-2010 11:24 PM

xin mọi người giúp đỡ giùm, thiệt sự bí quá

tongvanngocspkt 08-04-2013 01:29 PM

Trích:

Nguyên văn bởi hoahiep1959 (Post 37915)
tôi viết 1 đoạn code cho Pic18f4431 giao tiep Isd4002 bằng PICC nhưng nó không chạy.Tôi dùng driver cua con ISD4002 có sẳn trong PICC.ai có kinh nghiệm coi thử giùm tôi viết đúng ko? cảm ơn anh em!

#include "C:\Program Files\PICC\Drivers\isd4003.c"
#int_RB
void RB_isr(void)
{
delay_ms(40);
disable_interrupts(INT_RB);
if (!input(PIN_B7))
{
output_d(0b10000000);
record_message(0b00000011) ;
delay_ms(40);
break;
}
if (!input(PIN_B6))
{
output_d(0b01000000);
play_message(0b00000011);
delay_ms(40);
break;
}
if (!input(PIN_B5))
{
output_d(0b00100000);

stop_message();
delay_ms(40);
break;
}
if (!input(PIN_B4))
{
output_d(0b00010000);


break;
}
enable_interrupts(INT_RB);
}



void main()
{

setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF|ADC_TAD_MUL_0|ADC_WHEN_INT0|ADC_ INT_EVERY_OTHER);
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_4);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
enable_interrupts(INT_RB);
enable_interrupts(GLOBAL);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

// TODO: USER CODE!!
while(1)
{
output_d(0b00010000);
delay_ms(200);
output_d(0b00000000);
delay_ms(200);
}
}

anh dùng thư viện của ISD4003 để lập trình cho ISD4002 nên không thể chạy là đương nhiên. vì thanh ghi lệnh của MOSI là <5 bit opcode> <10bits address> mà.


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam