Chanel 07

三四线城市房地产库存天量 存在崩盘风险东台哪卖渔具的比较好啊比较正宗的。现在哪里有泳圈卖啊东台楼盘价格备案外地人游览东台城强烈建议交警大队公布可以临时长时停车的路段【城建新姿】东台市惠阳路跨通榆河大桥雄姿初显东台破获千万非法经营黄金期货案最新消息 日本关东地区发生强烈地震东台哪里有小液晶电视卖?泰州大桥今天通车衣加衣,温暖在继续~ 冬日里的温暖--------DT123衣加衣行动随拍年底想租个9座的蓝牌商务车偷盗:不欢迎你寻人启事 跪求!!!!!!!!!!!!!!!!!寻良医东台的报刊预订有任务吗求东台上午开上海的汽车班次及随车电话号码求上海回东台最后一班车子的时间及电话号码
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "xil_types.h" #include "xil_cache.h" #include "xparameters.h" #include "xgpio.h" #include "xaxivdma.h" #include "xaxivdma_i.h" #include "display_ctrl/display_ctrl.h" #include "vdma_api/vdma_api.h" #include "clk_wiz/clk_wiz.h" //宏定义 #define BYTES_PIXEL 3 //像素字节数,RGB888占3个字节 #define CLK_WIZ_ID XPAR_CLK_WIZ_0_DEVICE_ID //时钟IP核器件ID #define VDMA_ID XPAR_AXIVDMA_0_DEVICE_ID //VDMA器件ID #define DISP_VTC_ID XPAR_VTC_0_DEVICE_ID //VTC器件ID #define AXI_GPIO_0_ID XPAR_AXI_GPIO_0_DEVICE_ID //PL端 AXI GPIO 0(lcd_id)器件ID #define AXI_GPIO_0_CHANEL 1 //使用AXI GPIO(lcd_id)通道1 //函数声明 void colorbar(u8 *frame, u32 width, u32 height, u32 stride); //全局变量 XAxiVdma vdma; DisplayCtrl dispCtrl; XGpio axi_gpio_inst; //PL端 AXI GPIO 驱动实例 VideoMode vd_mode; //frame buffer的起始地址 unsigned int const frame_buffer_addr = (XPAR_PSU_DDR_0_S_AXI_BASEADDR + 0x1000000); unsigned int lcd_id=0; //LCD ID int main(void) { XGpio_Initialize(&axi_gpio_inst,AXI_GPIO_0_ID); //GPIO初始化 XGpio_SetDataDirection(&axi_gpio_inst,AXI_GPIO_0_CHANEL,0x07); //设置AXI GPIO为输入 lcd_id = LTDC_PanelID_Read(&axi_gpio_inst,AXI_GPIO_0_CHANEL); //获取LCD的ID XGpio_SetDataDirection(&axi_gpio_inst,AXI_GPIO_0_CHANEL,0x00); //设置AXI GPIO为输出 xil_printf("LCD ID: %x\r\n",lcd_id); //根据获取的LCD的ID号来进行video参数的选择 switch(lcd_id){ case 0x4342 : vd_mode = VMODE_480x272; break; //4.3寸屏,480*272分辨率 case 0x4384 : vd_mode = VMODE_800x480; break; //4.3寸屏,800*480分辨率 case 0x7084 : vd_mode = VMODE_800x480; break; //7寸屏,800*480分辨率 case 0x7016 : vd_mode = VMODE_1024x600; break; //7寸屏,1024*600分辨率 case 0x1018 : vd_mode = VMODE_1280x800; break; //10.1寸屏,1280*800分辨率 default : vd_mode = VMODE_800x480; break; } //配置VDMA run_vdma_frame_buffer(&vdma, VDMA_ID, vd_mode.width, vd_mode.height, frame_buffer_addr,0, 0,ONLY_READ); //设置时钟IP核输出的时钟频率 clk_wiz_cfg(CLK_WIZ_ID,vd_mode.freq); //初始化Display controller DisplayInitialize(&dispCtrl, DISP_VTC_ID); //设置VideoMode DisplaySetMode(&dispCtrl, &vd_mode); DisplayStart(&dispCtrl); //写彩条 colorbar((u8*)frame_buffer_addr, vd_mode.width, vd_mode.height, vd_mode.width*BYTES_PIXEL); return 0; } //写彩条函数(彩虹色) void colorbar(u8 *frame, u32 width, u32 height, u32 stride) { u32 color_edge; u32 x_pos, y_pos; u32 y_stride = 0; u8 rgb_r, rgb_b, rgb_g; color_edge = width * BYTES_PIXEL / 7; for (y_pos = 0; y_pos < height; y_pos++) { for (x_pos = 0; x_pos < (width * BYTES_PIXEL); x_pos += BYTES_PIXEL) { if (x_pos < color_edge) { //红色 rgb_r = 0xFF; rgb_g = 0; rgb_b = 0; } else if ((x_pos >= color_edge) && (x_pos < color_edge * 2)) { //橙色 rgb_r = 0xFF; rgb_g = 0x7F; rgb_b = 0; } else if ((x_pos >= color_edge * 2) && (x_pos < color_edge * 3)) { //黄色 rgb_r = 0xFF; rgb_g = 0xFF; rgb_b = 0; } else if ((x_pos >= color_edge * 3) && (x_pos < color_edge * 4)) { //绿色 rgb_r = 0; rgb_g = 0xFF; rgb_b = 0; } else if ((x_pos >= color_edge * 4) && (x_pos < color_edge * 5)) { //青色 rgb_r = 0; rgb_g = 0xFF; rgb_b = 0xFF; } else if ((x_pos >= color_edge * 5) && (x_pos < color_edge * 6)) { //蓝色 rgb_r = 0; rgb_g = 0; rgb_b = 0xFF; } else if ((x_pos >= color_edge * 6) && (x_pos < color_edge * 7)) { //紫色 rgb_r = 0x8B; rgb_g = 0; rgb_b = 0xFF; } frame[x_pos + y_stride + 0] = rgb_b; frame[x_pos + y_stride + 1] = rgb_g; frame[x_pos + y_stride + 2] = rgb_r; } y_stride += stride; } Xil_DCacheFlush(); //刷新Cache,数据更新至内存 xil_printf("show color bar\r\n"); }具体代码如上,根据上述具体代码,给出排查vdma的具体方案
11-02
续写下面程序//SlCD4511测试程序 #include ";StdAfx.h"; #include ";Printout.h"; #include ";math.h"; //全局变量或函数申明: void Openshort(void); unsigned int A; unsigned int B; unsigned int C; unsigned int D; unsigned int Y[7]; unsigned int LT; unsigned int B1; unsigned int LE; int a; //这里添加函数: //测试程序信息函数: void PASCAL SlCD4511_inf() { CString str1; str1=";程序员ID";; strcpy(testerinf.Programer,str1.GetBuffer(str1.GetLength())); str1=";程序版本号";; strcpy(testerinf.ProgVer,str1.GetBuffer(str1.GetLength())); str1.ReleaseBuffer(); testsum.failflag=0; //";硬件Bin"; terminal=";机械手或者探针台";; //规定失效分项从SBIN7开始,合格分档testsum.passbin在0-7之间 Writeitem(fail_stat[7].test_name,";失效SBIN7 名称";); Writeitem(fail_stat[8].test_name,";失效SBIN8 名称";); Writeitem(fail_stat[9].test_name,";失效SBIN9 名称";); Writeitem(fail_stat[10].test_name,";失效SBIN10 名称";); //保存参数Ƒ-300个)属性输入(保存的项目号,保存参数名字)(参数名不能含@字符) WritetestinfƑ,";保存参数名1";); Writetestinfƒ,";保存参数名2";); WritetestinfƓ,";保存参数名3";); WritetestinfƔ,";保存参数名4";); Writetestinfƕ,";保存参数名5";); } float _read_pin_voltage(unsigned int pin_number,unsigned int chanel) { float vout; _on_pmu_pin(pin_number); switch(chanel) { case 1: SUBPORT[113]|=0xc0; _outsubportƐx71,SUBPORT[113]); SUBPORT[124]|=0x03; _outsubportƐx7c,SUBPORT[124]); _waitƕ); vout=_ad_converƒ,2); break; case 2: SUBPORT[115]|=0xc0; _outsubportƐx73,SUBPORT[115]); SUBPORT[124]|=0x0c; _outsubportƐx7c,SUBPORT[124]); _waitƕ); vout=_ad_converƔ,2); break; default: vout=0.0; break; } _off_pmu_pin(pin_number); return(vout); } //主测试程序: void PASCAL SlCD4511() { LE=3; B1=4; LT=5; A=2; B=7; C=6; D=1; Y[1]=10; Y[2]=11; Y[3]=12; Y[4]=13; Y[5]=9; Y[6]=14; Y[7]=15; _on_relayƑ); _on_relayƔ); Openshort(); fuction();
03-25
基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置和速度的精确估计与控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础和嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值