• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::

論壇索引


Board index » All Posts (tdnx611g)




MPLAB无法使用picstar plus,为何?请指教。
新會員
新會員



發表於: 2010/5/5 9:33
頂部


Re: CAN通讯,可以loopback正常,但是nor 方式,没有输出.
#2
新會員
新會員


用LOOPBCAK工作模式,正常,可以收到串口来的数据,
但是用nor工作模式,也就是上楼的程序,就不能接收到数据,
CANH CANL 电压为0.

發表於: 2009/10/21 22:35
頂部


Re: CAN通讯,可以loopback正常,但是nor 方式,没有输出.
#3
新會員
新會員


// 自循环方式, 全过滤方式 让RXB0 接受数据,后累计求和,判断正确的话,让所有6个流水灯全亮.
//程序已经调通.
#include "p30f4011.h"
#include "can.h"
#include "uart.h"
#define CAN1_TX _RF1
#define CAN1_RX _RF0
#define DIR_CAN1_TX _TRISF1
#define DIR_CAN1_RX _TRISF0
#define INPUT 1
#define OUTPUT 0
//void __attribute__((__interrupt__,no_auto_psv)) _U2TXInterrupt()

void delay(unsigned int t)
{
unsigned int x,y;
for(x=6414;x>0;x--)
for(y=t;y>0;y--);

}
unsigned char TxData[10]={0,0,0,0,0,0,0,0,0,0};

unsigned char RxData[10]={0,0,0,0,0,0,0,0,0,0};


void Initial_CAN( void )
{
CAN1SetOperationMode( CAN_IDLE_CON &
CAN_MASTERCLOCK_1 & //Fcan=Fcy
CAN_REQ_OPERMODE_CONFIG ) ;//can为配置模式,只有计入配置模式,才可改写其他寄存器

while ( C1CTRLbits.OPMODE <= 3 );//直道当前操作模式小于三,表示进入配置模式
CAN1Initialize( CAN_SYNC_JUMP_WIDTH3 &//同步跳转宽度为3TQ
CAN_BAUD_PRE_SCALE(9),//BRP==9
CAN_WAKEUP_BY_FILTER_DIS &//不被接受滤波器唤醒
CAN_PHASE_SEG2_TQ(4) &//相位2为4个TQ
CAN_PHASE_SEG1_TQ(6) &//相位1为6个TQ
CAN_PROPAGATIONTIME_SEG_TQ(2) & //传播段占用2TQ
CAN_SEG2_FREE_PROG &//相位2的宽度为可以自由编程设定
CAN_SAMPLE1TIME ) ;//相位1结束后采样一次总线

CAN1SetFilter ( (char) 0 , CAN_FILTER_SID( 0x200 ) &CAN_RX_EID_DIS ,//仅接受标准ID,用RF0滤波器
CAN_FILTER_EID( 0x00 )) ;//过滤器的扩展位设置全0

CAN1SetFilter ( (char) 1 , //用RF1过滤器
CAN_FILTER_SID( 0x300 ) &CAN_RX_EID_DIS ,//仅接受标准ID 过滤器的标准ID为全0
CAN_FILTER_EID( 0x00 )) ;

CAN1SetMask ( (char)0 , //用0号屏蔽寄存器
CAN_MASK_SID ( 0xFFFF ) //屏蔽寄存器的SID=0X7FF
& CAN_MATCH_FILTER_TYPE ,//由于过滤器仅接受标准ID故屏蔽寄存器要设定依据过滤器从而实现仅过滤标准ID
CAN_MASK_EID( 0x00) ) ;

CAN1SetTXMode( (char) 0 , CAN_TX_STOP_REQ & CAN_TX_PRIORITY_HIGH ) ;
CAN1SetRXMode( (char) 0 , CAN_RXFUL_CLEAR & CAN_BUF0_DBLBUFFER_DIS ) ;

CAN1SetOperationMode( CAN_IDLE_CON & //器件闲置,CAN依然工作
CAN_CAPTURE_DIS &//禁止捕捉
CAN_MASTERCLOCK_1 &//Fcy=Fcan
CAN_REQ_OPERMODE_NOR ) ; //can工作在普通模式
while (C1CTRLbits.OPMODE!=0)
{


} //确认进入自测试模式

}
void initIO()
{
TRISE=0;
LATE=0;
DIR_CAN1_TX = OUTPUT ;
DIR_CAN1_RX = INPUT ;

}
int main( void )
{
initIO();
Initial_CAN( ) ;
unsigned char i,sum=0;
TxData[0] = 0 ;
TxData[1] = 0 ;
TxData[2] = 0 ;
TxData[3] = 0 ;
TxData[4] = 2 ;
TxData[5] = 6 ;
TxData[6] = 0 ;
TxData[7] = 0 ;


// while (!CAN1IsRXReady(0));//RXB0没有接收到数据,就在此处等待,
// CAN1ReceiveMessage( RxData,8,0 ) ; // 一旦接收标志为RX0FUL=1,说明数据接收
// C1RX0CONbits.RXFUL = 0 ;
// for(i=0;i<8;i++)
// {
// putcUART2(RxData[i]);
// }
while (1)
{
while(!CAN1IsTXReady(0));
CAN1SendMessage(( CAN_TX_SID(0x200))&CAN_TX_EID_DIS&CAN_SUB_NOR_TX_REQ,(CAN_TX_EID(0x00))&CAN_NOR_TX_REQ,TxData,8,0) ;
}

}

發表於: 2009/10/21 22:34
頂部


CAN通讯,可以loopback正常,但是nor 方式,没有输出.
#4
新會員
新會員


// 自循环方式, 全过滤方式 让RXB0 接受数据,后累计求和,判断正确的话,让所有6个流水灯全亮.
//程序已经调通.
#include "p30f4011.h"
#include "can.h"
#include "uart.h"
#define CAN1_TX _RF1
#define CAN1_RX _RF0
#define DIR_CAN1_TX _TRISF1
#define DIR_CAN1_RX _TRISF0
#define INPUT 1
#define OUTPUT 0
//void __attribute__((__interrupt__,no_auto_psv)) _U2TXInterrupt()

void delay(unsigned int t)
{
unsigned int x,y;
for(x=6414;x>0;x--)
for(y=t;y>0;y--);

}
unsigned char TxData[10]={0,0,0,0,0,0,0,0,0,0};

unsigned char RxData[10]={0,0,0,0,0,0,0,0,0,0};


void Initial_CAN( void )
{
CAN1SetOperationMode( CAN_IDLE_CON &
CAN_MASTERCLOCK_1 & //Fcan=Fcy
CAN_REQ_OPERMODE_CONFIG ) ;//can为配置模式,只有计入配置模式,才可改写其他寄存器

while ( C1CTRLbits.OPMODE <= 3 );//直道当前操作模式小于三,表示进入配置模式
CAN1Initialize( CAN_SYNC_JUMP_WIDTH3 &//同步跳转宽度为3TQ
CAN_BAUD_PRE_SCALE(9),//BRP==9
CAN_WAKEUP_BY_FILTER_DIS &//不被接受滤波器唤醒
CAN_PHASE_SEG2_TQ(4) &//相位2为4个TQ
CAN_PHASE_SEG1_TQ(6) &//相位1为6个TQ
CAN_PROPAGATIONTIME_SEG_TQ(2) & //传播段占用2TQ
CAN_SEG2_FREE_PROG &//相位2的宽度为可以自由编程设定
CAN_SAMPLE1TIME ) ;//相位1结束后采样一次总线

CAN1SetFilter ( (char) 0 , CAN_FILTER_SID( 0x200 ) &CAN_RX_EID_DIS ,//仅接受标准ID,用RF0滤波器
CAN_FILTER_EID( 0x00 )) ;//过滤器的扩展位设置全0

CAN1SetFilter ( (char) 1 , //用RF1过滤器
CAN_FILTER_SID( 0x300 ) &CAN_RX_EID_DIS ,//仅接受标准ID 过滤器的标准ID为全0
CAN_FILTER_EID( 0x00 )) ;

CAN1SetMask ( (char)0 , //用0号屏蔽寄存器
CAN_MASK_SID ( 0xFFFF ) //屏蔽寄存器的SID=0X7FF
& CAN_MATCH_FILTER_TYPE ,//由于过滤器仅接受标准ID故屏蔽寄存器要设定依据过滤器从而实现仅过滤标准ID
CAN_MASK_EID( 0x00) ) ;

CAN1SetTXMode( (char) 0 , CAN_TX_STOP_REQ & CAN_TX_PRIORITY_HIGH ) ;
CAN1SetRXMode( (char) 0 , CAN_RXFUL_CLEAR & CAN_BUF0_DBLBUFFER_DIS ) ;

CAN1SetOperationMode( CAN_IDLE_CON & //器件闲置,CAN依然工作
CAN_CAPTURE_DIS &//禁止捕捉
CAN_MASTERCLOCK_1 &//Fcy=Fcan
CAN_REQ_OPERMODE_LOOPBK ) ; //can工作在普通模式
while (C1CTRLbits.OPMODE!=2)
{


} //确认进入自测试模式

}
void initIO()
{
TRISE=0;
LATE=0;
DIR_CAN1_TX = OUTPUT ;
DIR_CAN1_RX = INPUT ;

}
int main( void )
{
initIO();
Initial_CAN( ) ;
unsigned char i,sum=0;
TxData[0] = 0 ;
TxData[1] = 0 ;
TxData[2] = 0 ;
TxData[3] = 0 ;
TxData[4] = 2 ;
TxData[5] = 6 ;
TxData[6] = 0 ;
TxData[7] = 0 ;
while(!CAN1IsTXReady(0));
CAN1SendMessage(( CAN_TX_SID(0x200))&CAN_TX_EID_DIS&CAN_SUB_NOR_TX_REQ,(CAN_TX_EID(0x00))&CAN_NOR_TX_REQ,TxData,8,0) ;

while (!CAN1IsRXReady(0));//RXB0没有接收到数据,就在此处等待,
CAN1ReceiveMessage( RxData,8,0 ) ; // 一旦接收标志为RX0FUL=1,说明数据接收
C1RX0CONbits.RXFUL = 0 ;
for(i=0;i<8;i++)
{
putcUART2(RxData[i]);
}
while (1) ;

}
可以正常工作,并可以用收到串口的过来的数据.

發表於: 2009/10/21 22:33
頂部


为什么进不了外部中断? 请指教
#5
新會員
新會員


#include"p33fj16mc304.h"
int main()
{
_INT0EP=1;//下降沿中断
_INT0IP=6;//中断优先级为6
_INT0IE=1;//中断使能
ADPCFG=0XFF;//禁用ad
TRISC=0;//c口输出,驱动led,只是中断状态
LATC=0xff;//让led全亮
TRISB=0XFF;//中断0的pin,设为输入.
while(1);

}

void _ISR _INT0Interrupt(void)
{
_INT0IF=0;//清中断标志
LATC=0X00;//一旦进入中断,让led全灭.
}


总是进不去中断,int0脚,上皆有上拉电阻.

發表於: 2009/10/17 18:42
頂部


DIY一个30f4011的开发板.
#6
新會員
新會員



Attach file:



jpg  (0.00 KB)


發表於: 2009/8/9 12:12
頂部



(1) 2 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------