资源简介
本资源包含stm32f103 spi flash usb sd卡iic,tft液晶屏,触摸屏驱动
MP3解码播放,fc模拟器等等,全部源码,注译详细
正点原子原创

代码片段和文件信息
#include “includes.h“
#include “3d.h“
#include “lcd.h“
#include “sintbl.h“
#include “string.h“
#include “usart.h“
#include “malloc.h“
//////////////////////////////////////////////////////////////////////////////////
//代码转自MacroXu AVR S65 3D Project
//把原来的绝大部分浮点运算改为整形运算并将原来的sincos函数换为查表法以提高速度
//优化后速度提升约12倍
//ALIENTEK战舰STM32开发板
//3D 代码
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//修改日期:2012/10/3
//版本:V1.0
//////////////////////////////////////////////////////////////////////////////////
//创建3D图形管理器
//offsetx:x轴向的偏移
//offsety:y轴向的偏移
//offsetz:z轴向的偏移
//size:3D像素点的个数(每个占用14个字节)
_t3d_obj* t3d_creat(u16 offsetxu16 offsetyu16 offsetzu16 size)
{
u8 res=0;
_t3d_obj* t3d_crt;
t3d_crt=(_t3d_obj*)mymalloc(SRAMINsizeof(_t3d_obj));//分配管理器的内存
if(t3d_crt==NULL)return NULL;//内存分配不够.
t3d_crt->p3dbuf=(type_3d_pixel*)mymalloc(SRAMEXsizeof(type_3d_pixel)*size);//分配3D像素点的内存
if(t3d_crt->p3dbuf==NULL)res=1;//内存分配不够.
t3d_crt->p2dbuf=(type_2d_pixel*)mymalloc(SRAMEXsizeof(type_2d_pixel)*size);//分配2D像素点的内存
if(t3d_crt->p2dbuf==NULL)res=1;//内存分配不够.
t3d_crt->ang.x=0;
t3d_crt->ang.y=0;
t3d_crt->ang.z=0;
t3d_crt->dis.x=0;
t3d_crt->dis.y=0;
t3d_crt->dis.z=0;
t3d_crt->pixsize=0;
t3d_crt->maxpixsize=size;
//坐标系偏移
t3d_crt->offx=offsetx;
t3d_crt->offy=offsety;
t3d_crt->offz=offsetz;
if(res)//创建失败
{
t3d_delete(t3d_crt);
return NULL;
}else return t3d_crt;//创建成功
}
//删除一个3D管理器
void t3d_delete(_t3d_obj* t3d_del)
{
myfree(SRAMEXt3d_del->p2dbuf);
myfree(SRAMEXt3d_del->p3dbuf);
myfree(SRAMINt3d_del);
}
/////////////////////////////////////////////算法部分/////////////////////////////////
//查表发获得正弦值正弦值扩大1024倍取整.
//arg:角度 (单位:0.1度)
//返回值:正弦值(扩大1024倍取整)
signed short my_sin(s16 arg)
{
if(arg<0)
{
arg=-arg;
arg=arg%3600;//周期总是0~360°
if(arg<=900)return -sintbl[arg];
else if(arg<=1800)return -sintbl[1800-arg];
else if(arg<=2700)return sintbl[arg-1800];
else return sintbl[3600-arg];
}else
{
arg=arg%3600;//周期总是0~360°
if(arg<=900)return sintbl[arg];
else if(arg<=1800)return sintbl[1800-arg];
else if(arg<=2700)return -sintbl[arg-1800];
else return -sintbl[3600-arg];
}
}
//查表发获得余弦值余弦值扩大1024倍取整.
//arg:角度 (单位:0.1度)
//返回值:余弦值(扩大1024倍取整)
signed short my_cos(s16 arg)
{
if(arg<0)arg=-arg;//转换为正数
arg=arg%3600;//周期总是0~360°
if(arg<=900)return sintbl[900-arg];
else if(arg<=1800)return -sintbl[arg-900];
else if(arg<=2700)return -sintbl[2700-arg];
else return sintbl[arg-2700];
}
//核心算法部分
//3d转2D函数 pangle-旋转角度,ptrandis-移动位置 ppixel-要转换的像素 ppreturn-转换后的2D值保存到这
//pangle:角度.单位为弧度而不是°.如果要用度表示的话需要乘以π/180
//ptrandis:移动位置(当前点所围绕操作的点的坐标3D像素点)
//ppixel:要转换的像素点(3D像素点)
//ppreturn:转换完成后的像素点(2D像素点)
void t3d_pixel_transform(_t3d_obj* t3dxu16 pixindex)
{
signed long lsinxlcosxlsinylcosylsinzlcosz;
signed long ltempxltempyltempz;
signed long ldxldyldz;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9048 2012-10-03 23:06 实验56 战舰STM32开发板综合实验\3D\3d.c
文件 2665 2012-10-03 23:06 实验56 战舰STM32开发板综合实验\3D\3d.h
文件 6601 2012-03-07 17:45 实验56 战舰STM32开发板综合实验\3D\sintbl.h
文件 5323 2012-01-04 13:52 实验56 战舰STM32开发板综合实验\3D\texture.h
文件 5528 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\3dplay.c
文件 597 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\3dplay.h
文件 10737 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\appplay.c
文件 1354 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\appplay.h
文件 22986 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\calculator.c
文件 1314 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\calculator.h
文件 13474 2012-10-05 23:00 实验56 战舰STM32开发板综合实验\APP\calendar.c
文件 1603 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\calendar.h
文件 8002 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\camera.c
文件 626 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\camera.h
文件 36550 2012-10-05 21:43 实验56 战舰STM32开发板综合实验\APP\common.c
文件 4551 2012-10-03 23:08 实验56 战舰STM32开发板综合实验\APP\common.h
文件 5231 2012-10-08 19:18 实验56 战舰STM32开发板综合实验\APP\ebook.c
文件 584 2012-10-03 23:10 实验56 战舰STM32开发板综合实验\APP\ebook.h
文件 6316 2012-10-08 13:02 实验56 战舰STM32开发板综合实验\APP\exeplay.c
文件 1751 2012-10-04 14:57 实验56 战舰STM32开发板综合实验\APP\exeplay.h
文件 6831 2012-10-03 23:13 实验56 战舰STM32开发板综合实验\APP\lyric.c
文件 1879 2012-10-03 23:13 实验56 战舰STM32开发板综合实验\APP\lyric.h
文件 28314 2012-10-04 14:17 实验56 战舰STM32开发板综合实验\APP\mp3pla
文件 3504 2012-10-03 23:11 实验56 战舰STM32开发板综合实验\APP\mp3pla
文件 6519 2012-10-04 10:52 实验56 战舰STM32开发板综合实验\APP\nesplay.c
文件 761 2012-10-03 23:13 实验56 战舰STM32开发板综合实验\APP\nesplay.h
文件 7047 2012-10-04 14:43 实验56 战舰STM32开发板综合实验\APP\notepad.c
文件 787 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\notepad.h
文件 15487 2012-10-08 14:43 实验56 战舰STM32开发板综合实验\APP\paint.c
文件 1242 2012-10-03 23:20 实验56 战舰STM32开发板综合实验\APP\paint.h
............此处省略338个文件信息
相关资源
- 基于stm32f103ve的程序——跑马灯实验
- flash3.0小游戏
- Spire API文档
- The direction of synaptic plasticity mediated
- flash as3 多点触控-缩放-旋转-滑动.zi
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- DSP28335程序片内FLASH搬运至RAM运行的
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- STM32F103 串口程序(完整版)
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- 28335写的用spi读取传感器数据并用CA
- STM32F103 CC2500完整驱动(模拟SPI)
- flash 倒计时器
- 手机短信api接口(源代码)
- cs5530的SPI程序
- 9s12单片机SPI功能代码
- 找不同FLASH游戏源码
- TMS320F2812_FLASH读写实例
- stm32 用SPI 方式读写 SDHC
- 数电教学中的flash示意图
- arm flash 烧写程序源码
- 金鱼屏保程序
- SPI Master 的Verilog源代码
- 原创数据结构Flash演示动画46个算法演
- SX1280.rar
评论
共有 条评论