Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 0:4ca9c83d7e14, committed 2020-06-22
- Comitter:
- vitlog
- Date:
- Mon Jun 22 09:52:25 2020 +0000
- Commit message:
- DAC
Changed in this revision
| LT1446.cpp | Show annotated file Show diff for this revision Revisions of this file |
| LT1446.h | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LT1446.cpp Mon Jun 22 09:52:25 2020 +0000
@@ -0,0 +1,33 @@
+#include "LT1446.h"
+//повторное объявление из-за использования внешней переменной и ошибки множественного объявления
+LT1446_MEM_t LT1446_MEM;
+//экземпляр по умолчанию
+LT1446_t LT1446_0;
+
+ void LT1446_CalibrateCh(LT1446_Calibr_t *dac,float k, float b)
+{
+ dac->k=k;
+ dac->b=b;
+}
+//Вычислить значение для передачи в ЦАП
+void LT1446_CalculateCh(LT1446_Calibr_t *dac)
+{
+ dac->Code=(uint16_t)(dac->k*dac->Volts+dac->b);
+ if (dac->Code>4095) dac->Code=4095;
+}
+
+void LT1446_Write(LT1446_t *chip)
+{
+
+
+ LT1446_MEM.DACA=chip->dacA.Code;
+ LT1446_MEM.DACB=chip->dacB.Code;
+ Cs=0;
+ TED2.write(LT1446_MEM.b3);
+ TED2.write(LT1446_MEM.b2);
+ TED2.write(LT1446_MEM.b1);
+ Cs=1;
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LT1446.h Mon Jun 22 09:52:25 2020 +0000
@@ -0,0 +1,51 @@
+#ifndef LT1446_H
+#define LT1446_H
+/*Начало файла*/
+#include "PerifConfig.h"
+
+/*записывам в DACA и DACB а отправляем байты. Байт 2 содержит часть от обоих каналов*/
+typedef union{
+ struct{
+ uint32_t
+ DACB:12,
+ DACA:12;
+ };
+ struct{
+ uint8_t
+ b3,
+ b2,
+ b1;
+ };
+ } LT1446_MEM_t; //объявление типа
+ //объявление внешней переменной (продолжение в cpp файле)
+ extern LT1446_MEM_t LT1446_MEM;
+
+ /*Оперативное значение калибровки*/
+ typedef struct {
+ float k,Volts,b;
+ struct{
+ uint16_t Code:12; //вывод в ЦАП
+ uint16_t //резерв под флаги
+ f0:1,
+ f1:1,
+ f2:1,
+ f3:1;
+ };
+ }LT1446_Calibr_t;
+
+/*типа для создания экземпляра ЦАПа если их несколько*/
+typedef struct {
+ LT1446_Calibr_t dacA;
+ LT1446_Calibr_t dacB;
+ } LT1446_t;
+
+ //объект по умолчанию
+ extern LT1446_t LT1446_0;
+
+ /*Функция калибровки (присвоение коэффициентов)*/
+ void LT1446_CalibrateCh(LT1446_Calibr_t *dac,float k, float b);
+ void LT1446_CalculateCh(LT1446_Calibr_t *dac);
+ /*записать данные в память микросхемы*/
+ void LT1446_Write(LT1446_t *chip);
+/*Конец файла*/
+#endif