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.
Dependencies: mbed
main.cpp
- Committer:
- mortenc
- Date:
- 2015-03-24
- Revision:
- 1:67ff37605839
- Parent:
- 0:33e3deecd2b1
File content as of revision 1:67ff37605839:
#include "mbed.h" Serial pc(USBTX, USBRX); DigitalOut transistor1(p21); DigitalOut transistor2(p22); DigitalOut transistor3(p23); DigitalOut transistor1LED(LED1); DigitalOut transistor2LED(LED2); DigitalOut transistor3LED(LED3); AnalogIn batteriPort(p20); enum {startet, test1, test2, test3, tomtBatteri} systemstatus; Ticker testNR3; void test3funksjon(); void lesTegn(void); void kommandoTolker(char kommando); void Test1(int verdi); void Test2 (int verdi); void Test3 (int verdi); //void Status-batteri (int verdi); void Resett(); void Stopp(); int main() { pc.attach(&lesTegn); systemstatus = startet; float batterinivaa[10] = {2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5}; int index = 0; float batterisnitt; while(1) { batterinivaa[index] = batteriPort.read() * 3.3; batterisnitt = 0; for (int i = 0; i < 10; i++) { batterisnitt += batterinivaa[i]; } batterisnitt = batterisnitt / 10; if (index == 9) index = 0; else index++; if (batterisnitt <= 1.8) { printf("Batterinivaa for lavt. Avslutter testing\n\r"); Stopp(); systemstatus = tomtBatteri; //egentlig unødvendig repetisjon av komando i void Stopp() } wait(0.5); } } void lesTegn(void) { char s = pc.getc(); kommandoTolker(s); } void kommandoTolker(char kommando) { if(kommando == 'b'||kommando=='B') { printf("B ble skrevet inn\n\r"); printf("Status-bateri: %f\n\r", batteriPort.read()*3.3); } else if(kommando == 'h'|| kommando == 'H') { printf("Hjelp:\n\r"); printf("Skriv inn tall fra 1-3 for tester.\n\r"); printf("Skriv inn R eller r for aa resette anlegget.\n\r"); printf("Skriv inn B eller b for aa faa batter-status.\n\r"); printf("H ble skrevet inn\n\r"); } else if(kommando == '1') { if (systemstatus == startet) { printf("Test 1 startet\n\r"); Test1(1); systemstatus = test1; } else if (systemstatus == tomtBatteri) printf("Batteriet har for lite strom til aa utfore en test\n\r"); else printf("En test paagaar allerede\n\r"); } else if(kommando =='2') { if (systemstatus == startet) { printf("Test 2 startet\n\r"); Test2(1); systemstatus = test2; } else if (systemstatus == tomtBatteri) printf("Batteriet har for lite strom til aa utfore en test\n\r"); else printf("En test paagaar allerede\n\r"); } else if(kommando =='3') { if (systemstatus == startet) { printf("Test 3 startet\n\r"); Test3(1); systemstatus = test3; } else if (systemstatus == tomtBatteri) printf("Batteriet har for lite strom til aa utfore en test\n\r"); else printf("En test paagaar allerede\n\r"); } else if(kommando=='r'||kommando=='R') { printf("Anlegger blir naa resatt\n\r"); Resett(); } else printf ("Ugyldig komando: trykk \"h\" for hjelp\n\r"); } void Resett() { systemstatus = startet; transistor1 = 0; transistor1LED = 0; transistor2 = 0; transistor2LED = 0; transistor3 = 0; transistor3LED = 0; testNR3.detach(); } void Stopp() { systemstatus = tomtBatteri; transistor1 = 0; transistor1LED = 0; transistor2 = 0; transistor2LED = 0; transistor3 = 0; transistor3LED = 0; } void Test1(int verdi) { transistor1LED = verdi; transistor1 = verdi; } void Test2 (int verdi) { transistor2LED = verdi; transistor2 = verdi; } void Test3 (int verdi) { testNR3.attach(&test3funksjon, 120.0); } void test3funksjon () { transistor1LED = !transistor1LED; transistor2LED = !transistor2LED; transistor3LED = !transistor3LED; transistor1 = !transistor1; transistor2 = !transistor2; transistor3 = !transistor3; }