
C
文章平均质量分 67
谢娘蓝桥
绿水青山境长静,花落虽频意自闲。
展开
-
中科蓝讯AB32VG1 开箱
昨天收到板子无比的喜悦,终于晚上RISC-V的板子了,感谢电子发烧友及RTT 举办这个有意义的活动。废话不多说,开干。一 环境搭建1.先安装RT studio,基于eclipse开发用起来还蛮顺手。先要安装risc-v 及 AB32VG1驱动然后还需安装rsic-v 编译器每次只能安装一个,这个有待完善2. 安装下载器Bluetrum/AB32VG1_DOC此地址下载原理图、下载器、datasheet、layout 等3.新建rt 工程4.我这个版本有几个小bug需要更换...原创 2021-09-30 22:54:47 · 468 阅读 · 0 评论 -
# ## C语言使用
#和##对于大部分C语言玩得还算比较溜的朋友并不是很陌生,不过能把这两个知识点游刃有余的应用到所在代码中的每个角落,似乎并没有几个人能够做到,学的时候朗朗上口,而编码的时候却抛之脑后。但是今天bug菌还是想重新介绍这两个“兄弟”,希望大家能够写出"秀"一点的代码~1#和##基础对于这两个语法的功能都比较简单,且都是在预处理阶段做一些工作 : #主要是将宏参数转化为字符串 ##主要是将两个标识符拼接成一个标识符 没点代码似乎并不是那么形象 :参考demo: .转载 2021-09-01 18:45:54 · 1153 阅读 · 0 评论 -
开源库C/C++推荐
1.Eigen 是一个线性算术的C++模板库,包括:vectors, matrices, 以及相关算法。功能强大、快速、优雅以及支持多平台,tensorflow 都在使用https://eigen.tuxfamily.org/index.php?title=Main_Page2.Armadillo C++ Library 是一种C++的线性代数库(矩阵数学)以取得良好的平衡速度与易用性。整数,浮点,而复杂的数字支持,以及一个子集,三角和统计功能。各种矩阵分解是通过可选的集成 与LAPACK和A...原创 2021-08-16 19:33:36 · 1405 阅读 · 0 评论 -
常见三角函数优化版本
1.sindef fastsin(fAngle): fASqr = fAngle*fAngle fResult = 7.61e-03 fResult *= fASqr fResult -= 1.6605e-01 fResult *= fASqr fResult += 1.0 fResult *= fAngle return fResultprint(np.sin(2*np.pi/1024))print(fastsin(2*np.pi/原创 2021-07-09 14:45:05 · 684 阅读 · 2 评论 -
CCES dsp mips 优化心得
ADI dsp cces 优化心得1.runtime checks 勾选会占用很大的mips2LDF 设置系统的 heap(堆) stack(栈)3.常用的设置4.双重循环内,尽量减少内循环的次数,能展开的展开,减少for 或while 调度的资源占用5.尽量少用除法...原创 2021-06-30 16:22:13 · 1009 阅读 · 1 评论 -
嵌入式启动过程
启动过程需要一定的mcu 内核cpu汇编指令知识,很多对内核寄存器/堆栈指针的初始化、I/D canche的初始化过程等等都需要专门的汇编指令。嵌入式mcu在硬件复位或者软件复位后,都是从复位向量指向的复位中断ISR 开始执行的通常复位源有1.每次por或者复位后,cpu寄存器除pc寄存器有 复位函数ISR,其余都为随机值,所以先将内核cpu全局中断关闭2.初始化看门狗3.RAM ECC ,对RAM 进行初始化,写入整个RAM空前(支持SIMD)获得ECC 值,计算ECC..原创 2021-06-29 20:28:40 · 221 阅读 · 0 评论 -
算法优化实现
运算算法优化目录 平方根‘’整数立方根整数的幂10为底的整数对数查找表实现CRC32IEEE 格式牛顿法:素数的判断和生成1.平方根‘’二分法查找硬件实现整数立方根...原创 2020-11-20 11:09:06 · 246 阅读 · 0 评论 -
软件实现uart 8n1 的接收
/** * @file * Software serial (UART) receiver * * This module implements the receive engine for asynchronous serial * communications using polling ("bit banging"). Transmission capability * is not provided. * * The data format is <tt>8-N-1&l原创 2020-08-20 14:49:52 · 425 阅读 · 0 评论 -
MCU位操作实现(读写)
// Get a bit field from a value#define GetField(Var, Mask, Shift) \ (((Var) >> (Shift)) & (Mask))// Set a bit field in a value#define SetField(Var, Mask, Shift, Val) \ (Var) = (((Var) & ~((Mask) << (Shift))) | (((Val) &a原创 2020-08-20 14:47:38 · 553 阅读 · 0 评论 -
PID float版本功能实现
/*! \details This structure holds the data to run a * floating point PID loop. */typedef struct{ float max /*! \brief Max manipulated value */; float min /*! \brief Miniumum manipulated value */; float e /*! \brief Error value */; float i /*! \brief原创 2020-08-20 14:46:17 · 188 阅读 · 0 评论 -
加性高斯白噪声产生
#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926536double AWGN_generator(){/* Generates additive white Gaussian Noise samples with zero mean and a standard deviation of 1. */ double temp1; double tem原创 2020-08-20 14:41:04 · 1227 阅读 · 0 评论 -
步进电机精确控制
/* * IBM-PC Parallel Printer Port Data & Status Registers * ==================================================== * 7 6 5 4 3 2 1 0 I/O Port * +---+---+---+---+---+---+---+---+ ======== * Data | C8| C7| C6| C5| C4| C3| C原创 2020-08-20 14:39:43 · 415 阅读 · 0 评论 -
二进制表示
// The following macros build values in binary. Nybbles are separated by// commas for readability. If a non-binary digit is used, a compiler error// will result. Here are some examples of the usage of the binary macros://// B4 (0110) = 0x06//原创 2020-08-20 14:38:25 · 429 阅读 · 0 评论 -
1维2维查找表线性差值实现
/** * @file * Table lookup with interpolation (1-D and 2-D). * * This is a 1/2-D table lookup facility. Each routine looks up data in a table * structure, interpolating as needed between data points. The 2-D version * looks up along 2 axes and int原创 2020-08-20 14:35:57 · 274 阅读 · 0 评论 -
4*4矩阵运算
/Keypad connection: #define col0 PIN_B3#define col1 PIN_B2#define col2 PIN_B1#define col3 PIN_B0#define row0 PIN_B7#define row1 PIN_B6#define row2 PIN_B5#define row3 PIN_B4#define num_col 4// Keypad layout:char const KEYS[4][4] = {{1,2,3,13},原创 2020-08-20 14:32:43 · 7226 阅读 · 0 评论 -
键盘矩阵扫描实现
// PID Control program by Bill Keenan, Melbourne// Throttle PID loop stuff#define Umin -1022#define Umax 1022#define Kp 0.5 //#define Ki 0.005 //#define Kd 1.25 //float U0 = 0;float integ; // integration part of PID-loop must be saved float原创 2020-08-20 14:09:52 · 233 阅读 · 0 评论 -
18B20 驱动 MSP430
float get_temp(void);void reset_18B20(void);void send_18B20(char data);unsigned int read_18B20(void);#define ONE_WIRE_PIN BIT4#define ONE_WIRE_IN P1IN#define ONE_WIRE_OUT P1OUT#define ONE_WIRE_DIR P1DIRfloat get_temp(void){ unsigned int temp原创 2020-08-20 14:08:39 · 219 阅读 · 0 评论 -
循环FIFO buffer实现
/***** circularBuffer.h *****/#ifndef CIRCULAR_BUFFER_H_#define CIRCULAR_BUFFER_H_#define BUFFER_SIZE 128#define TYPE char// Check if the buffer it is fullbool isFull();// Check if the buffer it is empty bool isEmpty();// Get the first elemen原创 2020-08-20 13:48:26 · 672 阅读 · 0 评论 -
SHT11 驱动
/*********** begin of library header file sht11.h ***************/#ifndef _SHTXX_H#define _SHTXX_H#include <inttypes.h>#define HUMIDITY_BYTE 0x05#define TEMPERATURE_BYTE 0x03//State machine states#define SHT_DATA_WAIT_INITIAL_STATE原创 2020-08-20 13:46:57 · 592 阅读 · 0 评论 -
base64 编码
#include <string.h>#include <stdint.h>//This is a helper function to convert a six-bit value to base64char base64_encode_six(uint8_t six_bit_value){ uint8_t x; char c; x = six_bit_value & ~0xC0; //remove top two bits (should be zero原创 2020-08-20 10:31:47 · 116 阅读 · 0 评论 -
mcu输入滤波
/**************************************************************************************//* sample usage of the library *//*****************************************************************************原创 2020-08-20 10:30:36 · 409 阅读 · 0 评论 -
ARM 定点fir 汇编实现
/* ********************************************************************** * * Fixed Point Filtering Library * * ********************************************************************** * * lowpass_fir.S * * Jordan Rhee * rhee.jordan@gmail.com * *原创 2020-08-15 14:12:05 · 373 阅读 · 0 评论 -
小数延时的实现
小数延迟的实现/****************DELAY.C*******************************/#include "delay.h"#include "math.h"#define MAX_BUF_SIZE 64000/****************************************************************************** Fractional delay line implementation i原创 2020-08-15 14:03:11 · 854 阅读 · 3 评论 -
嵌入式 c语言基础注意事项
Volatilevolatile易变的,可变的,一般用于以下几种状况:1)并行设备的硬件寄存器(如:状态寄存器)2)一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)3)多线程应用中被几个任务共享的变量volatile可以解决用户模式和异常中断访问同一个变量时,出现的不同步问题,另外在访问硬件地址时,volatile也阻止对地址访问的优化,从而确保访问的实际的地址,精通volatile的运用,在嵌入式底层中十分重要,也是嵌入式C从业者的基本要求之一原创 2020-08-13 13:41:34 · 337 阅读 · 0 评论 -
arm fir 滤波器定点 汇编实现
/* ********************************************************************** * * Fixed Point Filtering Library * * ********************************************************************** * * lowpass_fir.S * * Jordan Rhee * rhee.jordan@gmail.com * *.原创 2020-07-24 14:56:27 · 618 阅读 · 0 评论 -
移相器的C语言实现
/*Phaser audio effect:Xin Yout-------------------------------[dir_mix]--------------------->[+]---------> | ^ .原创 2020-07-24 14:41:10 · 716 阅读 · 0 评论 -
notch filter c 实现
#include "br_iir.h"#include <math.h>#define BR_MAX_COEFS 120#define PI 3.1415926/*This is an array of the filter parameters objectdefined in the br_iir.h file*/static struct br_coeffs br_coeff_arr[BR_MAX_COEFS];/*This initialization functi.原创 2020-07-24 14:36:24 · 1629 阅读 · 0 评论 -
float 数组 memcpy数据复制
假设有一个数组 float data[64];一次拷贝128byte; 拷贝两次memcpy(&data[0],in_data[0],128);memcpy(&data[0]+128,in_data[0],128);memcpy(&data[32],in_data[0],128);第二行和第三个哪个对?...原创 2020-03-12 16:19:06 · 4029 阅读 · 1 评论 -
filter 函数 c语言实现
int filtfilt(const double*x,double*y,int xlen,int ylen,double *a,double*b,int nfilt){ int nfact=nfilt-1; int tlen;//length of tx int i; double *tx,*tx1,*p,*t,*end; double *sp,*tve...原创 2019-05-28 17:10:22 · 3808 阅读 · 0 评论 -
C 语言实现PID 控制
http://emb.hqyj.com/xuexi/Column/20181522.html转载 2018-11-26 11:15:09 · 871 阅读 · 0 评论