Vitaliy Loginov / Mbed 2 deprecated Chromatograph_Mobile

Dependencies:   ad5422_arduino mbed LT1446 LM35 PGA280_ADS1259

Files at this revision

API Documentation at this revision

Comitter:
vitlog
Date:
Mon Jun 08 05:50:32 2020 +0000
Child:
1:5d28312892aa
Commit message:
123

Changed in this revision

PGA280_ADS1259.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PGA280_ADS1259.lib	Mon Jun 08 05:50:32 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/vitlog/code/PGA280_ADS1259/#f9ba28ab9f4c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Jun 08 05:50:32 2020 +0000
@@ -0,0 +1,108 @@
+#include "PerifConfig.h"
+#include "PGA280.h"
+#include "ADS1259.h"
+#include "PGA280ADS1259.h"
+#include "main.h"
+
+/*Таймер для вызова функции каждые 40 мс*/
+Ticker adctask;
+/*Конец*/
+
+char mbflag;
+unsigned char pga280gain;
+char UComandFlag;
+volatile unsigned char UComand;
+volatile long tempdata=0;
+char ch=0;                          //адрес на плате ТЭД-2 = 6
+float x=0;
+float k;
+unsigned char str[];
+
+
+
+//функция чтения АДС для выполнения в задаче
+void readADC()
+{
+    tempdata=ads1259_readData(5);       //функция может зависать (надо избавиться от бесконечного цикла)          
+    x=NormADC(tempdata);
+    printf("%08f\r\n",x);
+}
+
+
+float inline NormADC(long data)
+{
+    x=data*2.5/0x800000;
+    //x=x*8/(1<<pga280gain);
+    return x;
+}
+
+void ComandCheck()
+{    
+    if(UART.getc()=='/')              
+        {
+        UART_gets(16); //моя функция на время
+        UART.printf("%c\r\n",str[0]);
+        switch (str[0]){
+             case 'p':{                
+                pga280gain=str[1]; //присваиваем числовое значение команды взятое из символа цифры
+                pga280gain-=0x30;
+                ch=5;
+                pga280_setGAIN(pga280gain,ch);
+                ch=0;               
+                break;}            
+            case 'g': {               
+                //запустить задачу чтения АЦП каждые 40 мс (25 герц)
+                adctask.attach(&readADC,0.04);               
+                break;}
+            case's':    {
+                adctask.detach();               
+                break;}
+            case 'd':
+                //MBFlagRegister.DAC=1;
+                break;
+            case 'e':{
+                tempdata=pga280_readOneRegisterDevice(PGA280_ERROR_ADR,5);//чтение ошибок                
+                printf("ERRORS %X\n",tempdata);                               
+                break;}            
+            case 'r':{
+                //перезагрука                           
+                printf("System Reset\r\n");
+                NVIC_SystemReset();
+                break;}
+            default:                
+                //MBFlagRegister.TMLS=0; //починка зависания (не работает)
+                break;            
+        }
+    }
+}
+
+int main()
+{    
+    SPI1_MasterInitMode(0);
+   
+   //запустить задачу проверки команды по прерыванию УАРТ
+    UART.attach(&ComandCheck,Serial::RxIrq);
+    
+    EN1=1;
+    ch=5;
+    //pga280_setAdress(ch);    
+    pga280_ads1259_init(ch); //инициализировать АЦП по адресу на плате ТЭД-2 = 5 (4)
+    printf("\r\n");      
+    tempdata=pga280_readOneRegisterDevice(PGA280_BUF_TIMEOUT_ADR,ch);
+    printf("Timeout %X\n",tempdata);
+    wait_ms(20);
+    pga280_setGAIN(GAIN_1_PGA280,ch);
+    pga280_setMUX(2,ch);
+    pga280gain=3; //   gain=1 (0x03)
+    tempdata=pga280_readOneRegisterDevice(PGA280_ERROR_ADR,ch);//чтение ошибок
+    printf("Errors %X\n",tempdata);   
+    /*Конец*/ 
+    
+    
+    while(1)
+    {
+        
+        wait_ms(100);
+    }
+}
+ 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.h	Mon Jun 08 05:50:32 2020 +0000
@@ -0,0 +1,2 @@
+float inline NormADC(long data);
+void ComandCheck();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Jun 08 05:50:32 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file