Thông báo

Collapse
No announcement yet.

xin giúp đỡ về L3 interface cho CODEC UDA1344

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • xin giúp đỡ về L3 interface cho CODEC UDA1344

    Chào các bác,em đang làm đề tài :mã hoá âm thoại dùng lpc2468.Em sử dụng CODEC UDA 1344, giao tiếp với nó qua L3 interface ,nhưng gần nửa tháng nay em vẫn chưa làm được.
    Bác nào có kinh nhiệm xin chỉ giùm em!
    mong được sự giúp đỡ.

  • #2
    đây là chương trình:

    #include "L3.h" //l3.h chỉ là khai báo các hàm thôi
    #include "lpc2468.h"
    void codec_pin_init(void)
    {
    PCB_PINSEL5 &=~((1<<15)|(1<<14)|(1<<19)|(1<<18)|(1<<21)|(1<<20 )|(1<<23)|(1<<22));//GPIO p2.23;25;26;27
    //GPIO2_FIODIR = GPIO_DIR_BIT27_IN | GPIO_DIR_BIT26_OUT | GPIO_DIR_BIT25_OUT | GPIO_DIR_BIT23_OUT;
    GPIO2_FIODIR &=~((1<<27)|(1<<26)|(1<<25)|(1<<23)); //reset bits
    GPIO2_FIODIR |=(1<<26)|(1<<25)|(1<<23);//23,25,26 are output
    }
    void setdat(U8 stat)
    {
    if (stat)
    {
    //GPIO2_FIOSET = GPIO2_FIOSET | GPIO_IO_BIT23;
    GPIO2_FIOSET |=(1<<23);
    }
    else
    {

    //GPIO2_FIOCLR = GPIO2_FIOCLR | GPIO_IO_BIT23;
    GPIO2_FIOCLR |=(1<<23);
    }
    }
    void setclk(U8 stat)
    {
    if (stat)
    {
    //GPIO2_FIOSET = GPIO2_FIOSET | GPIO_IO_BIT25;
    GPIO2_FIOSET |=(1<<25);
    }
    else
    {

    // GPIO2_FIOCLR = GPIO2_FIOCLR | GPIO_IO_BIT25;
    GPIO2_FIOCLR |=(1<<25);
    }
    }
    void setmode(U8 stat)
    {
    if (stat)
    {
    //GPIO2_FIOSET = GPIO2_FIOSET | GPIO_IO_BIT26;
    GPIO2_FIOSET |=(1<<26);
    }
    else
    {

    // GPIO2_FIOCLR = GPIO2_FIOCLR | GPIO_IO_BIT26;
    GPIO2_FIOCLR |=(1<<26);
    }
    }
    //static void l3_sendbyte(U8 data)
    void l3_sendbyte (U8 data)
    {
    U8 i,j,temp;
    temp = data;

    for (i=0;i<8;i++)
    {
    setclk(0);
    for (j = 0;j<40;j++);
    setdat(temp & 1);
    for (j = 0;j<40;j++);
    setclk(1);
    // for (j = 0;j<40;j++);
    for (j = 0;j<80;j++);
    temp >>= 1;
    }
    }
    //static void l3_sendbytes(U8 *buf, U32 lenght)
    void l3_sendbytes(U8 *buf, U32 lenght)
    {
    U8 i,j;
    U8 *L3_ptr;
    L3_ptr = buf;
    for (i=0;i<lenght;i++)
    {
    if (i)
    {
    for (j = 0;j<40;j++);
    setmode(0);
    for (j = 0;j<40;j++);
    }
    setmode(1);
    for (j = 0;j<40;j++);
    l3_sendbyte(*L3_ptr);
    L3_ptr++;

    }
    }

    void l3_write(U8 addr,U8 *data,U8 length)
    {
    U8 j;
    U8 *temp;
    temp = data;

    setclk(1);
    setdat(1);
    setmode(1);
    for (j = 0;j<40;j++);
    setmode(0);
    for (j = 0;j<40;j++);
    l3_sendbyte(addr);
    for (j = 0;j<40;j++);
    l3_sendbytes(temp, length);
    setclk(1);
    setdat(1);
    setmode(1);

    }
    còn đây là giản đồ xunglàm sao port giản đồ xung các bác:







    Comment


    • #3
      em không phát hiện được chỗ sai của chương trình trên,mà khi em ghi lệnh vào thì nó cứ im như hến!

      Comment

      Về tác giả

      Collapse

      hdv Tìm hiểu thêm về hdv

      Bài viết mới nhất

      Collapse

      Đang tải...
      X