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.
Fork of prosjektoppgave_alarm by
main.cpp@8:0e77808699d0, 2017-01-25 (annotated)
- Committer:
 - Rocker79
 - Date:
 - Wed Jan 25 11:39:46 2017 +0000
 - Revision:
 - 8:0e77808699d0
 - Parent:
 - 6:5607f07a3863
 - Child:
 - 12:3d384401500c
 
Laget en blink funksjon.
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| mathimat | 0:0aa2d9849f98 | 1 | #include "mbed.h" | 
| mathimat | 0:0aa2d9849f98 | 2 | |
| mathimat | 1:fbad5dc82abd | 3 | AnalogIn ain1(p17), ain2(p18), ain3(p19), ain4(p20); | 
| mathimat | 1:fbad5dc82abd | 4 | DigitalIn nullut(p16); | 
| mathimat | 1:fbad5dc82abd | 5 | BusOut ledStatus(p21,p22,p23,p24,p25,p26,p27,p28); | 
| mathimat | 1:fbad5dc82abd | 6 | DigitalOut ledMaster(LED1); | 
| mathimat | 6:5607f07a3863 | 7 | Serial pc(USBTX, USBRX); | 
| Rocker79 | 8:0e77808699d0 | 8 | PwmOut led(LED1); | 
| Rocker79 | 8:0e77808699d0 | 9 | |
| mathimat | 1:fbad5dc82abd | 10 | |
| mathimat | 5:b4e1656b6627 | 11 | Ticker tick; | 
| mathimat | 1:fbad5dc82abd | 12 | |
| mathimat | 1:fbad5dc82abd | 13 | int brytere[8]; //en for hver bryter, 1 = alarm | 
| mathimat | 1:fbad5dc82abd | 14 | int status = 0; //1 = alarm | 
| mathimat | 1:fbad5dc82abd | 15 | |
| Rocker79 | 8:0e77808699d0 | 16 | void blink() | 
| Rocker79 | 8:0e77808699d0 | 17 | { | 
| Rocker79 | 8:0e77808699d0 | 18 | if (status==0) { | 
| Rocker79 | 8:0e77808699d0 | 19 | led.period(0.1f); | 
| Rocker79 | 8:0e77808699d0 | 20 | led.write(1.0f); | 
| Rocker79 | 8:0e77808699d0 | 21 | } else { | 
| Rocker79 | 8:0e77808699d0 | 22 | led.period(0.1f); | 
| Rocker79 | 8:0e77808699d0 | 23 | led.write(0.5f); | 
| Rocker79 | 8:0e77808699d0 | 24 | } | 
| Rocker79 | 8:0e77808699d0 | 25 | |
| Rocker79 | 8:0e77808699d0 | 26 | } | 
| Rocker79 | 8:0e77808699d0 | 27 | |
| Rocker79 | 8:0e77808699d0 | 28 | |
| Rocker79 | 8:0e77808699d0 | 29 | |
| Rocker79 | 8:0e77808699d0 | 30 | |
| mathimat | 4:3dfc937f6516 | 31 | |
| mathimat | 4:3dfc937f6516 | 32 | //todo: få dette i en konfigurasjons tekstfil | 
| mathimat | 1:fbad5dc82abd | 33 | #define passord "qwerty" | 
| mathimat | 6:5607f07a3863 | 34 | #define bryterAhigh 0.285f | 
| mathimat | 6:5607f07a3863 | 35 | #define bryterAlow 0.200f | 
| mathimat | 6:5607f07a3863 | 36 | #define bryterBhigh 0.200f | 
| mathimat | 6:5607f07a3863 | 37 | #define bryterBlow 0.150f | 
| mathimat | 6:5607f07a3863 | 38 | #define bryterABhigh 0.150f | 
| mathimat | 6:5607f07a3863 | 39 | #define bryterABlow 0.050f | 
| mathimat | 6:5607f07a3863 | 40 | #define bryter0 0.97f | 
| mathimat | 1:fbad5dc82abd | 41 | |
| mathimat | 1:fbad5dc82abd | 42 | |
| Rocker79 | 8:0e77808699d0 | 43 | void getFromFile() { | 
| Rocker79 | 8:0e77808699d0 | 44 | |
| Rocker79 | 8:0e77808699d0 | 45 | } | 
| mathimat | 6:5607f07a3863 | 46 | |
| Rocker79 | 8:0e77808699d0 | 47 | int alarmSjekk(AnalogIn& krets, int kretsn) { | 
| Rocker79 | 8:0e77808699d0 | 48 | /* Sjekker kretsen etter spenningsendring og returnerer hvilke bryter som er åpen | 
| Rocker79 | 8:0e77808699d0 | 49 | -1 error | 
| Rocker79 | 8:0e77808699d0 | 50 | 0 alle lukket | 
| Rocker79 | 8:0e77808699d0 | 51 | 1 bryter A | 
| Rocker79 | 8:0e77808699d0 | 52 | 2 bryter B | 
| Rocker79 | 8:0e77808699d0 | 53 | 3 bryter AB | 
| Rocker79 | 8:0e77808699d0 | 54 | --- | 
| Rocker79 | 8:0e77808699d0 | 55 | */ | 
| Rocker79 | 8:0e77808699d0 | 56 | int bryter = -1; | 
| Rocker79 | 8:0e77808699d0 | 57 | float volt = krets.read(); | 
| Rocker79 | 8:0e77808699d0 | 58 | pc.printf("volt %f", volt); | 
| Rocker79 | 8:0e77808699d0 | 59 | if(volt <= bryter0) { | 
| Rocker79 | 8:0e77808699d0 | 60 | status = 1; | 
| Rocker79 | 8:0e77808699d0 | 61 | if(volt < bryterAhigh) { | 
| Rocker79 | 8:0e77808699d0 | 62 | if(volt < bryterBhigh) { | 
| Rocker79 | 8:0e77808699d0 | 63 | if(volt < bryterABhigh) { | 
| Rocker79 | 8:0e77808699d0 | 64 | bryter = 3; | 
| Rocker79 | 8:0e77808699d0 | 65 | } else { | 
| Rocker79 | 8:0e77808699d0 | 66 | bryter = 2; | 
| Rocker79 | 8:0e77808699d0 | 67 | } | 
| mathimat | 6:5607f07a3863 | 68 | } else { | 
| Rocker79 | 8:0e77808699d0 | 69 | bryter = 1; | 
| mathimat | 6:5607f07a3863 | 70 | } | 
| mathimat | 6:5607f07a3863 | 71 | } else { | 
| Rocker79 | 8:0e77808699d0 | 72 | bryter = -2; | 
| mathimat | 6:5607f07a3863 | 73 | } | 
| Rocker79 | 8:0e77808699d0 | 74 | } else(bryter = 0); | 
| Rocker79 | 8:0e77808699d0 | 75 | |
| Rocker79 | 8:0e77808699d0 | 76 | return bryter; | 
| Rocker79 | 8:0e77808699d0 | 77 | } | 
| mathimat | 1:fbad5dc82abd | 78 | |
| Rocker79 | 8:0e77808699d0 | 79 | void sjekkAlleKretser() { | 
| Rocker79 | 8:0e77808699d0 | 80 | //sjekker alle kretser skvensielt for aktivering | 
| Rocker79 | 8:0e77808699d0 | 81 | alarmSjekk(ain1, 0); | 
| Rocker79 | 8:0e77808699d0 | 82 | //alarmSjekk(ain2, 1); | 
| Rocker79 | 8:0e77808699d0 | 83 | //alarmSjekk(ain3, 2); | 
| Rocker79 | 8:0e77808699d0 | 84 | //alarmSjekk(ain4, 3); | 
| Rocker79 | 8:0e77808699d0 | 85 | } | 
| mathimat | 1:fbad5dc82abd | 86 | |
| Rocker79 | 8:0e77808699d0 | 87 | void statusLED() { | 
| Rocker79 | 8:0e77808699d0 | 88 | //oppdatere statusLED til aktiverte alarmer | 
| Rocker79 | 8:0e77808699d0 | 89 | for(int i=0; brytere[i]!=NULL; i++) { | 
| Rocker79 | 8:0e77808699d0 | 90 | if(brytere[i] == 1) { | 
| Rocker79 | 8:0e77808699d0 | 91 | ledStatus = ledStatus+i; | 
| Rocker79 | 8:0e77808699d0 | 92 | } | 
| mathimat | 1:fbad5dc82abd | 93 | } | 
| mathimat | 1:fbad5dc82abd | 94 | } | 
| mathimat | 1:fbad5dc82abd | 95 | |
| mathimat | 3:d3f95e1e06cf | 96 | |
| mathimat | 3:d3f95e1e06cf | 97 | |
| Rocker79 | 8:0e77808699d0 | 98 | void resetSystem() { | 
| Rocker79 | 8:0e77808699d0 | 99 | //reseter alarmsystemet | 
| Rocker79 | 8:0e77808699d0 | 100 | for(int i=0; brytere[i]!=NULL; i++) { | 
| Rocker79 | 8:0e77808699d0 | 101 | brytere[i] = 0; | 
| Rocker79 | 8:0e77808699d0 | 102 | } | 
| Rocker79 | 8:0e77808699d0 | 103 | status = 0; | 
| Rocker79 | 8:0e77808699d0 | 104 | |
| mathimat | 1:fbad5dc82abd | 105 | } | 
| mathimat | 0:0aa2d9849f98 | 106 | |
| Rocker79 | 8:0e77808699d0 | 107 | void log(int status) { | 
| Rocker79 | 8:0e77808699d0 | 108 | switch(status) { | 
| Rocker79 | 8:0e77808699d0 | 109 | } | 
| mathimat | 2:2d97a168af1e | 110 | } | 
| mathimat | 2:2d97a168af1e | 111 | |
| Rocker79 | 8:0e77808699d0 | 112 | void chron() { | 
| Rocker79 | 8:0e77808699d0 | 113 | sjekkAlleKretser(); | 
| mathimat | 5:b4e1656b6627 | 114 | statusLED(); | 
| Rocker79 | 8:0e77808699d0 | 115 | } | 
| mathimat | 5:b4e1656b6627 | 116 | |
| mathimat | 5:b4e1656b6627 | 117 | |
| Rocker79 | 8:0e77808699d0 | 118 | int main() { | 
| Rocker79 | 8:0e77808699d0 | 119 | while(1) { | 
| Rocker79 | 8:0e77808699d0 | 120 | int al = alarmSjekk(ain4, 4); | 
| Rocker79 | 8:0e77808699d0 | 121 | pc.printf(" Alarm Status: %d, Alarm %d gatt \r\n",status, al); | 
| Rocker79 | 8:0e77808699d0 | 122 | } | 
| mathimat | 3:d3f95e1e06cf | 123 | } | 
