您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> ADSP-21262
本帖共有537个阅读者
发表帖子 发表投票 回复主题
ADSP-21262
dy_boy2007(论坛新手)
dy_boy2007
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:128
积分:4
注册时间:2016/2/24
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
ADSP-21262
ADSP-21262 通过一个DAI接口输出 高低电平,应该怎么弄?需要设置哪些寄存器?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2016/2/24 10:16:06
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你可参考21262的硬件设计文档。


里面有跟DAI相关的寄存器详细说明,自己查一下吧。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2016/2/24 12:02:17
dy_boy2007(论坛新手)
dy_boy2007
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:128
积分:4
注册时间:2016/2/24
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我也正在看这个手册,

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2016/2/24 14:19:06
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
SHARC芯片的接口都要内部映射SRU寄存器的,不映射接口不会输出信号,21161没用过,给你一个21489用按键控制接口输出电平的例子,你参考下吧
/********************************************************
*
*   北京四维卓信电子有限公司
*
*  【OpenADSP开源社区】
*
********************************************************/

#include <cdef21489.h>
#include <def21489.h>
#include <sru.h>
#include <signal.h>
#include <sysreg.h>
#include "PBLED_test.h"

int main(void)
{
InitPLL();
Config_SRU_LEDS();
Setup_Ints();
while(1);
}

void InitPLL(void)
{
int n;
*pPMCTL = (PLLM16|PLLD4|DIVEN);
*pPMCTL |= PLLBP;
*pPMCTL ^= DIVEN;

for(n = 0; n < 10000; n++ )
{
asm("nop;");
}
*pPMCTL ^= PLLBP;
    
}

void Config_SRU_LEDS(void)
{
SRU(FLAG4_O,DPI_PB06_I); //DPI => We can use flags.
SRU(FLAG5_O,DPI_PB07_I); //DPI => We can use flags.
SRU(FLAG6_O,DPI_PB08_I); //DPI => We can use flags.
SRU(FLAG7_O,DPI_PB13_I); //DPI => We can use flags.
}

void LED0_ON(void)
{
SRU(HIGH,DPI_PBEN06_I);
}

void LED1_ON(void)
{
SRU(HIGH,DPI_PBEN07_I);
}

void LED2_ON(void)
{
SRU(HIGH,DPI_PBEN08_I);
}

void LED3_ON(void)
{
SRU(HIGH,DPI_PBEN13_I);
}

void LED0_OFF(void)
{
SRU(LOW,DPI_PBEN06_I);
}

void LED1_OFF(void)
{
SRU(LOW,DPI_PBEN07_I);
}

void LED2_OFF(void)
{
SRU(LOW,DPI_PBEN08_I);
}

void LED3_OFF(void)
{
SRU(LOW,DPI_PBEN13_I);
}

void Config_SRU_INTS(void)
{
    SRU(LOW,DAI_PB15_I); //assign pin buffer 15 low so it is an input
   SRU(LOW,DAI_PB16_I);     //assign pin buffer 16 low so it is an input
    SRU(LOW,DAI_PB19_I); //assign pin buffer 19 low so it is an input
    SRU(LOW,DAI_PB20_I);     //assign pin buffer 20 low so it is an input
    
    SRU(DAI_PB15_O,MISCA0_I); //route so that DAI pin buffer 15 connects to MISCA1
    SRU(DAI_PB16_O,MISCA1_I); //route so that DAI pin buffer 16 connects to MISCA2
    SRU(DAI_PB19_O,MISCA2_I); //route so that DAI pin buffer 19 connects to MISCA1
    SRU(DAI_PB20_O,MISCA3_I); //route so that DAI pin buffer 20 connects to MISCA2
    
    SRU(LOW,PBEN15_I); //assign pin 15 low so it is an input
    SRU(LOW,PBEN16_I); //assign pin 16 low so it is an input
    SRU(LOW,PBEN19_I); //assign pin 19 low so it is an input
    SRU(LOW,PBEN20_I); //assign pin 20 low so it is an input
}

//////////////////////////////////////////////////////////////////////////////
// void Setup_Ints(void)
//
// PURPOSE: Configure the system to accept the push buttons as inputs
//
//////////////////////////////////////////////////////////////////////////////
void Setup_Ints(void)
{
Config_SRU_INTS();

    (*pDAI_IRPTL_PRI) = (SRU_EXTMISCA0_INT  | SRU_EXTMISCA1_INT | SRU_EXTMISCA2_INT  | SRU_EXTMISCA3_INT );    //unmask individual interrupts
    (*pDAI_IRPTL_RE)  = (SRU_EXTMISCA0_INT  | SRU_EXTMISCA1_INT | SRU_EXTMISCA2_INT  | SRU_EXTMISCA3_INT );    //make sure interrupts latch on the rising edge

//Set up interrupt priorities
    sysreg_bit_set(sysreg_IMASK, DAIHI); //DAIHI//make DAI interrupts high priority
    interrupt(SIG_DAIH,DAIroutine);
}

//////////////////////////////////////////////////////////////////////////////
// void DAIroutine(int sig_int)
//
// PURPOSE: ISR for pushbutton 1,2,3,4
//
//////////////////////////////////////////////////////////////////////////////
void DAIroutine(int sig_int)
{
int iTest;
    iTest = (*pDAI_IRPTL_H); // reading pDAI_IRPTL_H clears the latched interrupt.
    if( SRU_EXTMISCA0_INT == iTest )
    {
LED0_ON();
LED1_ON();
LED2_ON();
LED3_ON();
    }
    else if( SRU_EXTMISCA1_INT == iTest )
    {
LED0_OFF();
LED1_ON();
LED2_OFF();
LED3_ON();
    }
    else if( SRU_EXTMISCA2_INT == iTest )
    {
LED0_ON();
LED1_OFF();
LED2_ON();
LED3_OFF();
    }
    else if( SRU_EXTMISCA3_INT == iTest )
    {
LED0_OFF();
LED1_OFF();
LED2_OFF();
LED3_OFF();
    }
}




这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2016/2/24 23:25:09
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159190 Call, 1 Queries, Processed in 0.718750 second(s),