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
Fork of XBee_write by
main.cpp
00001 #include "main.h" 00002 00003 //XBee B med bargraph og digitale innganger + potmeter 00004 00005 Serial xbee(p9, p10); 00006 Serial pc(USBTX, USBRX); 00007 DigitalOut rst(p11); 00008 DigitalOut myled(LED1); 00009 DigitalOut myled2(LED2); 00010 DigitalIn sb(p8); 00011 BusIn bryter[8] = {p12, p13, p14, p15, p16, p17, p18, p19}; 00012 DigitalOut leds[8] = {p21, p22, p23, p24, p25, p26, p27, p28}; 00013 char check_array_a[8] = {0, 0, 0, 0, 0, 0, 0, 0}; 00014 char digital_in_array[8] = {0, 0, 0, 0, 0, 0, 0, 0}; 00015 00016 AnalogIn ain(p20); 00017 char recievedmessage[8]; 00018 00019 void read_command(); 00020 void reset(); 00021 void check_digital_in(); 00022 void get_array(); 00023 void send_array(char *arr_name); 00024 00025 int main() 00026 { 00027 reset(); 00028 while(1) { 00029 read_command(); 00030 get_array(); 00031 check_digital_in(); 00032 send_array(digital_in_array); 00033 } 00034 } 00035 00036 void read_command() 00037 { 00038 if (xbee.readable()) { 00039 //Henter kommando og eventuell info for LEDs 00040 //xbee.gets(recievedmessage, sizeof(recievedmessage)); 00041 //xbee.scanf("%s", recieveptr); 00042 for (uint8_t i = 0; i <= 7; i++) { 00043 if (xbee.readable()) { 00044 //recievedmessage[i] = xbee.getc(); 00045 check_array_a[i] = xbee.getc(); 00046 pc.printf("\n\n %d Sjekk verdi pa bryter nr: %d", i, check_array_a[i]); 00047 00048 } else { 00049 recievedmessage[i] = NULL; 00050 } 00051 wait_ms(5); 00052 } 00053 00054 //Tømmer bufferet i tilfelle det dukker opp input som ikke hører hjemme 00055 while (xbee.readable()) { 00056 xbee.getc(); 00057 wait_ms(5); 00058 } 00059 } 00060 } 00061 00062 void check_digital_in() //sjekker om lokal digital input er satt til 1 og lagrer verdier i array 00063 { 00064 for (int a=0; a<=7; a++) { 00065 if (bryter[a] != 0) { 00066 digital_in_array[a] = 1; 00067 //bryter_nr[a] = a; 00068 //xbee.putc(x); 00069 } else { 00070 digital_in_array[a] = 0; 00071 } 00072 } 00073 } 00074 00075 void reset() 00076 { 00077 // reset the xbees (at least 200ns) 00078 rst = 0; 00079 wait_ms(1); 00080 rst = 1; 00081 wait_ms(1); 00082 } 00083 00084 void get_array() //Leser array sendt fra xbee og lagrer dette lokalt 00085 { 00086 for (int b=0; b<=7; b++) { 00087 //if (check_array_a[b] != 0) { 00088 if ((recievedmessage[b] == b) && (b !=0)) { 00089 check_array_a[b] = 1; 00090 } 00091 pc.printf("\n Lest fra array, nr: %d er verdi: %d", b, check_array_a[b]); 00092 wait(1.5); 00093 //} 00094 } 00095 } 00096 00097 void send_array(char *arr_name) //sender over hele arrayet 00098 { 00099 for (int c=0; c<=7; c++) { 00100 //if (check_array[c] !=0) { 00101 //xbee.printf("%c", c); 00102 //xbee.printf("%c", check_array[c]); 00103 xbee.putc(arr_name[c]); 00104 } 00105 pc.printf("\n array sendt \n"); 00106 }
Generated on Sun Jul 31 2022 03:07:46 by
1.7.2
