笔者开发了一种动弹模测定仪,这款产品可以发出10000HZ的超声波用来测试混凝体的动弹模量。该产品由安装有WINCE的CORTEX A8的嵌入式电脑控制。COXTEX A8模组产生150HZ-1000HZ的占空比为50%的PWM信号,该信号经过电路放大以后驱动超声波探头对混凝土试件发射超声波。超声波信号经过混凝土试件反射后,被测试探头接收。由于接收的信号非常弱,所以该信号经过微小电压放大电路后放大,最终被COXTEX a8模组接收,并存储。CORTEX A8比较计算后最终得到这个混凝土试件的动弹模量。仪器的电路如下图所示:
COXTEX a8模组由WINCE 下的上位机软件控制,软件源码下载百度网盘地址链接:
密码: jfbq该软件的程序为:微云文件分享:超声波变频下载地址:
using System; using System.Linq; using System.Collections.Generic; using System.Text;
using System.Drawing; using System.Drawing.Imaging;
namespace SmartDeviceProject5 { class Class1 { }
public class RealTimeImageMaker { private int width;//要生成的曲线图的宽度 private int height;//要生成的曲线图的高度 private Point[] pointList;//用来绘制曲线图的关键点,依次将这些点连接起来即得到曲线图 private Random random = new Random();//用于生成随机数 private Bitmap currentImage;//当前要绘制的图片 private Color backColor;//图片背景色 private Color foreColor;//图片前景色 ///
///
} ///
tempPoint = new Point();
//曲线的横坐标沿x轴依次递增,在横向位置上每个像素都有一个点 tempPoint.X = i; //曲线上每个点的纵坐标随机生成,但保证在显示区域之内 tempPoint.Y = random.Next() % height; pointList[i] = tempPoint; } }
///
using System; using System.Linq; using System.Collections.Generic; using System.Text;
using System.Drawing; using System.Drawing.Imaging;
namespace SmartDeviceProject5 { class Class2 { }
/// 说明:实时图片生成类,在本例中横向坐标上每个像素都会有一个控制点 /// 实际开发中可以减少控制点,比如每5个像素用一个控制点 /// 这样的效果或许更加逼真 // /// 首发地址: /// public class RealTimeImageMaker { private int width;//要生成的曲线图的宽度 private int height;//要生成的曲线图的高度 private Point[] pointList;//用来绘制曲线图的关键点,依次将这些点连接起来即得到曲线图 private Random random = new Random();//用于生成随机数 private Bitmap currentImage;//当前要绘制的图片
private Color backColor;//图片背景色 private Color foreColor;//图片前景色 /// /// 图片的高度 /// /// /// public int Height { get { return height; } set { height = value; } } /// /// 图片的宽度 /// public int Width
{ get { return width; } set { width = value; } } /// /// 构造函数,指定生成的曲线图的宽度和高度 /// /// 要生成的曲线图的宽度 /// 要生成的曲线图的高度 public RealTimeImageMaker(int width, int height):this(width,height,Color.Gray,Color.Blue) { } /// /// 构造函数,指定生成的曲线图的宽度、高度及背景色和前景色 ///
/// 要生成的曲线图的宽度 /// 要生成的曲线图的高度 /// 曲线图背景色 /// 曲线图前景色 public RealTimeImageMaker(int width, int height, Color backColor, Color foreColor) { this.width = width; this.height = height; this.backColor = backColor; this.foreColor = foreColor; pointList = new Point[width]; Point tempPoint; //初始化曲线上的所有点坐标 for (int i = 0; i < width; i++) { tempPoint = new Point(); //曲线的横坐标沿x轴依次递增,在横向位置上每个像素都有一个点 tempPoint.X = i; //曲线上每个点的纵坐标随机生成,但保证在显示区域之内 tempPoint.Y = random.Next() % height; pointList[i] = tempPoint; } } /// /// 获取当前依次连接曲线上每个点绘制成的曲线 /// /// public Image GetCurrentCurve() { //currentImage = historyImage.Clone(new Rectangle(1, 0, width - 1, height), PixelFormat.Format24bppRgb); currentImage = new Bitmap(width, height); Point p; //将当前定位曲线图的坐标点前移,并且将横坐标减1, //这样做的效果相当于移除当前第一个点 for (int i = 0; i < width-1; i++) { p = pointList[i + 1]; pointList[i] = new Point(p.X-1,p.Y); } Point tempPoint = new Point(); //新生成曲线图定位点的最后一个点的坐标 tempPoint.X = width; //曲线上每个点的纵坐标随机生成,但保证在显示区域之内 tempPoint.Y = random.Next(DateTime.Now.Millisecond) % height; //在最后再添加一个新坐标点 pointList[width-1]=tempPoint; Graphics g = Graphics.FromImage(currentImage); g.Clear(backColor); //绘制曲线图 g.DrawLines(new Pen(foreColor), pointList); g.Dispose(); return currentImage;
}
} }
using System; using System.Linq; using System.Collections.Generic; using System.Text; using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Drawing.Imaging;
namespace SmartDeviceProject5 { class Class3 { } /// /// 说明:实时图片生成类,在本例中横向坐标上每个像素都会有一个控制点 /// 实际开发中可以减少控制点,比如每5个像素用一个控制点 /// 这样的效果或许更加逼真 /// 作者:周公 }
using System; using System.Linq; using System.Collections.Generic; using System.Text;
using System.Collections.Generic; using System.Text; using System.Drawing; using System.Drawing.Imaging;
namespace SmartDeviceProject5 { class Class4 { } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Windows.Forms;
namespace DrawPlane { class Draw {
//public Bitmap mybitmap;//用于双缓冲的位图,和画布等大 // public char j;//用于双缓冲的位图,和画布等大 Random rm = new Random(); public void cd() { char j;//用于双缓冲的位图,和画布等大 } } }
using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Drawing.Drawing2D; using System.Data.SQLite; using System.IO; using System.IO.Ports; namespace SmartDeviceProject5 { public unsafe partial class Form1 : Form { [DllImport("HDI_API.dll")] public static extern bool API_PWM_SetDiv(int channel, int div); [DllImport("HDI_API.dll")] public static extern bool API_PWM_Start(int channel, int cntb,int cmpb); [DllImport("HDI_API.dll")] public static extern bool API_PWM_Stop(int channel); [DllImport("HDI_API.dll")] public static extern bool API_PWM_GetFrequency(int channel,int frequency); [DllImport("HDI_API.dll")] public static extern bool API_ADC_Read(int channel, int* plevel); [DllImport("HDI_API.dll")] public static extern bool API_GPIO_Output(byte channel, byte level);
[DllImport("HDI_API.dll")] public static extern bool API_GPIO_Input(byte channel, byte* level);
[DllImport("HDI_API.dll")]
public static extern bool API_BEEP_Delay(int channel) ;
[DllImport("HDI_API.dll")] public static extern bool API_GPIO_Output(int ch, int level); [DllImport("HDI_API.dll")] public static extern bool API_GPIO_Input(int ch, int* pLevel); private SerialPort comport = new SerialPort(); private int DataMode = 1; delegate void HandleInterfaceUpdateDelegate(string text); public int* level0; public int* level1; public int* level2; public int* level3; string DbName = "ResidentFlash2\test.db";
public Form1() {
InitializeComponent(); //comport.DataReceived += new SerialDataReceivedEventHandler(comport_DataReceived); } private void Form1_Load(object sender, EventArgs e) { API_GPIO_Output(0, 0); API_GPIO_Output(1, 0); API_GPIO_Output(2, 0); API_GPIO_Output(3, 0); API_GPIO_Output(4, 0); API_GPIO_Output(5, 0); API_GPIO_Output(6, 0); API_GPIO_Output(7, 0); this.timer2.Enabled = true;//可以使用 SQLiteConnection.CreateFile(DbName); // MessageBox.Show("数据库创建完成。");
// 连接数据库 string connStr = "data source=" + DbName + ";Pooling=true;FailIfMissing=false"; SQLiteConnection conn = new SQLiteConnection(connStr); conn.Open(); // MessageBox.Show("数据库连接完成。");
// 创建表 SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand(); string sql = "CREATE TABLE test(username varchar(20),password varchar(20))"; cmd.CommandText = sql; cmd.Connection = conn; cmd.ExecuteNonQuery(); // MessageBox.Show("数据表创建完成。");
}
private void button1_Click(object sender, EventArgs e) { // line(); API_BEEP_Delay(50);
//this.timer1.Enabled = true;//可以使用 // string result = GlobalFld.fldl; // sjbh.Text = result; // MessageBox.Show(result);
// string result = GlobalFld.Fld1; // MessageBox.Show(result); //GlobalFld.Fld1 = "aaa"; // GlobalFld.Fld1 = "aaa"; //DrawLineS(); // cd.j = "aaa"; // cd(); // rm = "aaa";
// DateTime dt = DateTime.Now; // datagrid(); // string strtxt = textBox4.Text.ToString();
// FileStream fs1 = new FileStream("ResidentFlash2\dtm.txt", FileMode.Create, FileAccess.Write);//创建写入文件 // StreamWriter sw = new StreamWriter(fs1); //sw.WriteLine(this.textBox3.Text.Trim() + "+" + this.textBox4.Text);//开始写入值 //sw.Write(strtxt);//开始写入值
// sw.Write(textBox3.Text);//开始写入值 //sw.Close(); // fs1.Close();
//表示清空 txt // StreamWriter sw = new StreamWriter("D:\1.txt"); //string w = ""; //sw.Write(w); //sw.Close(); //表示向txt写入文本 // StreamWriter sw = new StreamWriter("ResidentFlash2\sjbh1.txt"); //string w = sjbh.Text;
// StreamReader sw = new StreamReader("ResidentFlash2\sjbh1.txt"); // string w = sjbh.Text; //char w = sjbh.Text; // sw.Reade(w); // sjbh.Text = sw; //sw.Close();
//StreamWriter sw = new StreamWriter("D:\1.txt"); //string w = "10"; //sw.Write(w); //sw.Close();
//表示追加文本 //StreamWriter sw = File.AppendText("D:\1.txt"); //StreamWriter sw = File.AppendText("ResidentFlash2\dtm.txt"); //string w = dt+"混凝土震动量"+textBox4.Text+","; // string w = dt + "混凝土震动量" + textBox4.Text + ","; // sw.Write(w); //sw.Close();
// this.textBox6.SelectedText = dt + "混凝土震动量" + textBox4.Text + ","; // label2.Text = textBox6.Text; //listBox1.Text = textBox6.Text; // char text; // string text = System.IO.File.OpenRead("ResidentFlash2\sjbh1.txt");
// file.Close(); //sjbh.Text = System.IO.File.OpenRead("C:\testDir\test.txt"); // foreach (string line in lines) //{ // Console.WriteLine(line); // }
StreamReader sr = new StreamReader("ResidentFlash2\sjbh1.txt", Encoding.Default); String chicun; // Char line;
// line = sr.ReadLine(); chicun = sr.ReadLine();
sjbh.Text = chicun; StreamReader sr1 = new StreamReader("ResidentFlash2\sjcd1.txt", Encoding.Default); StreamReader sr2 = new StreamReader("ResidentFlash2\sjkd1.txt", Encoding.Default); StreamReader sr3 = new StreamReader("ResidentFlash2\sjgd1.txt", Encoding.Default); String line1,line2,line3;
line1 = sr1.ReadLine(); line2 = sr2.ReadLine(); line3 = sr3.ReadLine(); sjcc.Text = line1 + "×" + line2 + "×" + line3; StreamReader sr4 = new StreamReader("ResidentFlash2\jyry1.txt", Encoding.Default); String line4; // Char line;
// line = sr.ReadLine(); line4 = sr4.ReadLine();
jyry.Text = line4; StreamReader sr5 = new StreamReader("ResidentFlash2\sjzl1.txt", Encoding.Default); String line5; // Char line;
// line = sr.ReadLine(); line5 = sr5.ReadLine();
sjzl.Text = line5; StreamReader sr6 = new StreamReader("ResidentFlash2\clxh1.txt", Encoding.Default); String line6; // Char line;
// line = sr.ReadLine(); line6 = sr6.ReadLine();
clxh.Text = line6; // while ((line = sr.ReadLine()) != null) //{ // Console.WriteLine(line.ToString()); // }
clsj.Text = label4.Text;
/// API_PWM_SetDiv(0, 200); // API_PWM_Start(0, 333, 166); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
//API_BEEP_Delay(50); //csbpl.Text = (int.Parse(csbpl.Text.Trim()) + 1).ToString(); // API_PWM_SetDiv(0, 2);//2850656057 // API_PWM_Start(0, 33300, 16650); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 // // API_BEEP_Delay(50); // int b = 3 - a.Length; zdj1(); API_PWM_Stop(0); API_BEEP_Delay(100);
}
public void zdj2()
{
int b=1000;
// bool b = 1000;
switch (b)
{
case 1000:
API_PWM_SetDiv(0, 2);//2850656057
API_PWM_Start(0, 3330, 1665); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break;
case 3000:
API_PWM_SetDiv(0, 2);//2850656057
API_PWM_Start(0, 3330, 1665); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break;
}
} private byte[] HexStringToByteArray(string s) {
s = s.Replace(" ", ""); byte[] buffer = new byte[s.Length / 2]; for (int i = 0; i < s.Length; i += 2) buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16); return buffer; } private string ByteArrayToHexString(byte[] data) { StringBuilder sb = new StringBuilder(data.Length * 3); foreach (byte b in data) sb.Append(Convert.ToString(b, 16).PadLeft(2, '0').PadRight(3, ' ')); return sb.ToString().ToUpper(); } public void zdj1() {
// int b = 3 - a.Length; // int b = 1000; int b; int c; int d; // StreamReader sr9 = new StreamReader("ResidentFlash2\.HZXZ.txt", Encoding.Default); // int b = sr9; StreamReader sr8= new StreamReader("ResidentFlash2\HZXZ1.txt", Encoding.Default); String PINLV1; // Char line;
// line = sr.ReadLine(); PINLV1 = sr8.ReadLine();
b = Convert.ToInt32(PINLV1); // StreamReader sr9 = new StreamReader("ResidentFlash2\.HZXZ.txt", Encoding.Default); // int b = sr9; StreamReader sr9 = new StreamReader("ResidentFlash2\HZXZ2.txt", Encoding.Default); String PINLV2; // Char line;
// line = sr.ReadLine(); PINLV2 = sr9.ReadLine();
c = Convert.ToInt32(PINLV2); //int b = 100; // bool c; // c = Convert.ToBoolean(b); // Thread t = new Thread(datathread); //t.Start(); if (comport.IsOpen) comport.Close();
// Set the port's settings comport.BaudRate = int.Parse("9600"); comport.DataBits = int.Parse("8"); comport.StopBits = (StopBits)Enum.Parse(typeof(StopBits), "One", true); comport.Parity = (Parity)Enum.Parse(typeof(Parity), "None", true); comport.PortName = "COM1"; // Open the port comport.Open(); d = c - b; for (int i = 0; i <d; i++) {
ad();
// line();
DateTime dt = DateTime.Now; // datagrid(); string strtxt = textBox4.Text.ToString();
// FileStream fs1 = new FileStream("ResidentFlash2\dtm.txt", FileMode.Create, FileAccess.Write);//创建写入文件 // StreamWriter sw = new StreamWriter(fs1);
//sw.WriteLine(this.textBox3.Text.Trim() + "+" + this.textBox4.Text);//开始写入值 //sw.Write(strtxt);//开始写入值 // sw.Write(textBox3.Text);//开始写入值 //sw.Close(); // fs1.Close();
//表示清空 txt // StreamWriter sw = new StreamWriter("D:\1.txt"); //string w = ""; //sw.Write(w); //sw.Close(); //表示向txt写入文本 //StreamWriter sw = new StreamWriter("D:\1.txt"); //string w = "10"; //sw.Write(w); //sw.Close(); //表示追加文本 //StreamWriter sw = File.AppendText("D:\1.txt"); // Obtain the number of bytes waiting in the port's buffer int bytes = comport.BytesToRead;
// Create a byte array buffer to hold the incoming data byte[] buffer = new byte[bytes];
// Read the data from the port and store it in our buffer comport.Read(buffer, 0, bytes);
// Show the user the incoming data in hex format string data = ByteArrayToHexString(buffer); // Display the text to the user in the terminal //UpdateReceiveTextBox(data); // string data = comport.ReadExisting();
StreamWriter sw = File.AppendText("ResidentFlash2\dtm.txt"); //string w = dt+"混凝土震动量"+textBox4.Text+","; string w = dt + "," + csbpl.Text + "HZ时,混凝土震动量" + textBox4.Text + "," + "串口数据" + data; sw.Write(w); sw.Close();
// this.textBox6.SelectedText = dt + "混凝土震动量" + textBox4.Text + ","; this.textBox6.Text = dt + "," + csbpl.Text + "HZ时,混凝土震动量" + textBox4.Text + "," + "串口数据" + data; // label2.Text = textBox6.Text; //listBox1.Text = textBox6.Text;
if (b> 0 & b<c) { switch (b) {
case 125: API_GPIO_Output(0, 1); API_GPIO_Output(1, 0); API_GPIO_Output(2, 0); API_GPIO_Output(3, 0); API_GPIO_Output(4, 0); API_GPIO_Output(5, 0); API_GPIO_Output(6, 0); API_GPIO_Output(7, 0);
API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 33300, 16650); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 132: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 31426, 15713); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 140: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 29553, 14776); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 150: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 27680, 13839); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 161: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 25807, 12903); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 173: //API_GPIO_Output(0, 1);
API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 23934, 11966); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 180: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 22997, 11498); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 188: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 22061, 11030); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 196: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 21124, 10561); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 206: // API_GPIO_Output(0, 1);
API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 20188, 10093); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 213: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 19469, 9859); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 221: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 18751, 9625); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 227:
//API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 18315, 9157); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 239: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 17378, 8688); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 246: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 16909, 8454); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 253: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 16441, 8220); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 260: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 15972, 7986); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 268: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 15504, 7752); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 285: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 14568, 7284); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break;
case 295: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057
API_PWM_Start(0, 14097, 7049); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 305: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 13631, 6815); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 316: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 13163, 6581); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 327: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 12695, 6347); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 340: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 12226, 6113); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 353: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 11758, 5879); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 360: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 11524, 5762); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break; case 368: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 11290, 5645); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 376: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 11056, 5428); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 384: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 10822, 5411); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 392: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 10587, 5293); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break;
case 401: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 10353, 5176); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 411: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 10119, 5059); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 420: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 9885, 4942); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break; case 431: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 9651, 4825); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 441: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 9417, 4708); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 452: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 9183, 4591); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 464: API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 8949, 4474); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 477: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 8714, 4357); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 483: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 8597, 4298); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 490: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 8480, 4240); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break; case 504: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057
API_PWM_Start(0, 8246, 4123); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 511: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 8129, 4064); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 519: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 8012, 4006); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 534: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 7778, 3889); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 542: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 7661, 3830); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 551: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 7544, 3772); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 560: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 7427, 3713); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break; case 569: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 7310, 3655); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 578: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 7193, 3596); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 587: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 7076, 3538); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 597: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6958, 3479); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break;
case 608: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6841, 3420); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 618: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6724, 3361); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 629: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6607, 3303); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break; case 640: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6490, 3244); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 652: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6373, 3186); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 664: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6256, 3127); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 677: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6139, 3069); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 684: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6080, 3039); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 690: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 6022, 3010); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 704: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5905, 2952); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break; case 718: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057
API_PWM_Start(0, 5788, 2892); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 726: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5729, 2863); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 733: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5671, 2835); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 741: // API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5612, 2805); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 748: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5554, 2776); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 754: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5495, 2747); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 764: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5437, 2718); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300
break; case 773: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5378, 2688); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 781: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5320, 2659); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 799: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5203, 2601); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 808: ///API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5144, 2571); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 818:
//API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5085, 2542); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break; case 827: //API_GPIO_Output(0, 1); API_PWM_SetDiv(0, 16);//2850656057 API_PWM_Start(0, 5026, 2513); //PWM计算方法是66.6MHZ 除以DIV CNTB,此例分别为2,和33300 break;