C30 大数组问题
|
||||
---|---|---|---|---|
新會員
|
请问下C30如何定义一个大于32K的数组?小于32K的话可以用PSV,大于32K的话一直编译不通过?老师们请帮忙.const unsigned char buffer[350000]写在FLASH中,然后用查表的方式 ,可就是不行.说数组太大了,难道没有解决的方法吗?
發表於: 2008/6/11 10:19
|
|||
|
请教16F677A/D问题
|
||||
---|---|---|---|---|
新會員
|
各位大大:以下我是A/D初始化的程序,该程序用仿真可以通过,但是在目标板上A/D转换的数值不对,请大家帮忙看下是什么问题?谢谢.
;************* 硬件初始化 ************** BCF STATUS,RP1 ;选体0为当前体 BCF STATUS,RP0 CLRF INTCON ;中断控制寄存器清零 MOVLW 80H MOVWF PORTA ;PORTA初始化 CLRF PORTB ;PORTB初始化 MOVLW 0C0H MOVWF PORTC ;PORTC初始化 BSF STATUS,RP1 ;BANK 2 MOVLW 70H ;RC<2:0>为模拟输入AN<6:4> MOVWF ANSEL MOVLW 0CH ;RB<5:4>为模拟输入AN<11:10> MOVWF ANSELH CLRF WPUB ;禁止PORTB弱上拉 CLRF IOCB ;禁止PORTB引脚中断 BSF STATUS,RP0 ;BANK 1 BCF STATUS,RP1 MOVLW B'01100101' ;振荡器控制,稳定的4MHZ内部振荡器作为时钟 MOVWF OSCCON CLRF WPUA ;禁止PORTA弱上拉 CLRF IOCA ;禁止PORTA引脚中断 MOVLW 00H ;RA<5:4>为输出,其余未定义 MOVWF TRISA MOVLW B'00110000' ;RB<5:4>为模拟输入,RB<7:6>为数字输出 MOVWF TRISB MOVLW B'00000111' ;RC<2:0>为模拟输入,其余为数字输出 MOVWF TRISC MOVLW 50H ;A/D转换时钟频率为 Fosc/16;如果选FRC内部振荡器,则置为30H MOVWF ADCON1 BCF STATUS,RP0 ;恢复体0为当前体 ;*********** 以下是对通道4进行A/D转换,结果送到TEMP2、TEMP1中 ****************** MOVLW B'00010000' ;选择通道AN4。 MOVWF ANI CALL SAD MOVF ADL,W ;10位A/D结果送到TEMP2、TEMP1中。 MOVWF TEMP1 MOVF ADH,W MOVWF TEMP2
發表於: 2008/5/4 13:46
|
|||
|
定义变量的顺序有什么说法吗?
|
||||
---|---|---|---|---|
新會員
|
程序有一个.h文件和一个.c文件组成。
.h文件中定义的是程序中的全局变量和 函数的声明。 .c文件中是程序的主代码。 现在只是改变.h文件中的变量的 顺序,而.c文件没有做任何改变。 但是程序运行起来,就出现问题,比如原来按键好使的现在不好使了。 请指教 改变前的.h文件 //配置菜单-额定值 uint rated_value[3]; //额定频率 , 额定电压, 额定功率 uint running_value[13]; //设置菜单-运行设定值 uint protect_value[13]; //设置菜单-保护设定值 uchar menu_buffer[38][16]; uchar menu_display[4][16]; uchar rc_buff[48]; //接收缓存 uchar tx_buff[48]; //发送缓存 //uchar KR[20]; //uchar PS[38]; //密码1,由程序固化,用户不可修改 “上,下,左,右,左,右,确定,退出” uchar password0[8]={8,4,2,10,2,10,32,1}; uchar password1[8]; //密码2,address:0x08----0x15 uchar password2[8]; //密码3,address:0x16----0x23 uint count_key; uint tmr1_count; uint L_run_count; //控制运行灯LED1 uint error_time; //接收错误次数 uint correct_time; //接收正确次数 uchar rc_time; //接收时间 uchar key_zhi, keyb, keyb1; //配置菜单-单元设置 uchar address_value; //单元地址, uchar year_value; //年, uchar month_value; //月, uchar day_value; //日, uchar week_day; //日, uchar hour_value; //小时, uchar minute_value; //分, uchar second_value; //秒 uchar PSV[30]; //设置菜单-保护板设定值-保护设定值 uchar FSV[30];//设置菜单-保护板设定值-故障设定值 uchar JSV[30]; //设置菜单--保护板设定值-速停故障设定值 uchar KC[15]; //调试菜单-开关量输出 //故障报文 uchar fault_sum; //故障总数 uchar fault_number; //当前故障号码 uchar direction_value; //方向值 1=正向 2=反向 3=停 uchar uart_recieve_time; //接收次数限制 uchar tx_count; ////发送字节数 改变后的 //配置菜单-额定值 uint rated_value[3]; //额定频率 , 额定电压, 额定功率 uint running_value[13]; //设置菜单-运行设定值 uint protect_value[13]; //设置菜单-保护设定值] uint count_key; uint tmr1_count; uint L_run_count; //控制运行灯LED1 uint error_time; //接收错误次数 uint correct_time; //接收正确次数 uchar menu_buffer[38][16]; uchar menu_display[4][16]; uchar rc_buff[48]; //接收缓存 uchar tx_buff[48]; //发送缓存 //uchar KR[20]; //uchar PS[38]; //密码1,由程序固化,用户不可修改 “上,下,左,右,左,右,确定,退出” uchar password0[8]={8,4,2,10,2,10,32,1}; uchar password1[8]; //密码2,address:0x08----0x15 uchar password2[8]; //密码3,address:0x16----0x23 uchar rc_time; //接收时间 uchar key_zhi, keyb, keyb1; //配置菜单-单元设置 uchar address_value; //单元地址, uchar year_value; //年, uchar month_value; //月, uchar day_value; //日, uchar week_day; //日, uchar hour_value; //小时, uchar minute_value; //分, uchar second_value; //秒 uchar PSV[30]; //设置菜单-保护板设定值-保护设定值 uchar FSV[30];//设置菜单-保护板设定值-故障设定值 uchar JSV[30]; //设置菜单--保护板设定值-速停故障设定值 uchar KC[15]; //调试菜单-开关量输出 //故障报文 uchar fault_sum; //故障总数 uchar fault_number; //当前故障号码 uchar direction_value; //方向值 1=正向 2=反向 3=停 uchar uart_recieve_time; //接收次数限制 uchar tx_count; ////发送字节数
發表於: 2008/4/16 11:32
|
|||
|
Re: 16F616 內部震盪問題一問
|
||||
---|---|---|---|---|
新會員
|
list p=16f616 ; list directive to define processor
#include <P16F616.inc> ; processor specific variable definitions __CONFIG _INTRC_OSC_CLKOUT ; Internal RC calibration value is placed at location 0x3FF by Microchip ; as a movlw k, where the k is a literal value. ORG 0x000 ; coding begins here goto main main MOVLW 0X0f movwf OSCTUNE ; update register with factory cal value nop GOTO $ end 这样就OK了
發表於: 2008/4/15 16:54
|
|||
|
Re: 串口通信没反映
|
||||
---|---|---|---|---|
新會員
|
向电脑发数据,居然都收不到.
發表於: 2008/4/15 13:55
|
|||
|
串口通信没反映
|
||||
---|---|---|---|---|
新會員
|
帮忙看下单片机串口给计算机发送数据的程序硬件连接是正确的 怎么就是没有反映呢,谢谢各位大大.硬件都连接正确.
;*****************************************************************************
發表於: 2008/4/15 9:58
|
|||
|
Re: 能否用PIC24FJ16GA002实现3路PWM输出3个不同频率
|
||||
---|---|---|---|---|
新會員
|
怎么实现两路啊?各位大大给我提供思路啊?或者有没有例程?
發表於: 2008/4/8 14:01
|
|||
|
能否用PIC24FJ16GA002实现3路PWM输出3个不同频率
|
||||
---|---|---|---|---|
新會員
|
初用PIC,看到该芯片具有5路标准PWM输出,于是想用该芯片实现3路独立的PWM输出3个频率信号,这三路PWM输出占空比均为50%,输出的频率各不相同,不知道能否实现?? 怎么实现?请各位大大多指教.
發表於: 2008/3/27 16:34
|
|||
|