|
Last change
on this file since 16318 was 10244, checked in by neise, 15 years ago |
|
debugged resistance calculation for AD7719
|
|
File size:
1.5 KB
|
| Line | |
|---|
| 1 | #include "muxer_fsc.h"
|
|---|
| 2 |
|
|---|
| 3 | // Sets voltage Muxer to current channel
|
|---|
| 4 | // this is a Muxing, and therefor the adc might need some time to settle.
|
|---|
| 5 | // Since there are:
|
|---|
| 6 | // - 40 voltage monitor channels
|
|---|
| 7 | // - 40 current monitor channels
|
|---|
| 8 | // - 4 humidity monitor channels
|
|---|
| 9 | // the muxer is set as follows.
|
|---|
| 10 | // channel 00..39 --> looking at the voltage channels
|
|---|
| 11 | // channel 40..79 --> looking at the current channels
|
|---|
| 12 | // channel 80..83 --> looking at the humidities
|
|---|
| 13 | void Set_V_Muxer (U08 channel){
|
|---|
| 14 | U08 SB = 0;
|
|---|
| 15 | // voltages
|
|---|
| 16 | if (channel < 40) {
|
|---|
| 17 | if (channel < 36)
|
|---|
| 18 | SB = channel*2;
|
|---|
| 19 | else
|
|---|
| 20 | SB = (channel+1)*2;
|
|---|
| 21 | }
|
|---|
| 22 | // currents
|
|---|
| 23 | else if (channel < 80) {
|
|---|
| 24 | channel -= 40;
|
|---|
| 25 | if (channel < 36)
|
|---|
| 26 | SB = channel*2+1;
|
|---|
| 27 | else
|
|---|
| 28 | SB = (channel+1)*2+1;
|
|---|
| 29 | }
|
|---|
| 30 | // humidities
|
|---|
| 31 | else if (channel < 84) {
|
|---|
| 32 | channel -= 80;
|
|---|
| 33 | switch (channel) {
|
|---|
| 34 | case 0:
|
|---|
| 35 | SB = 0x48; //0100.1000
|
|---|
| 36 | break;
|
|---|
| 37 | case 1:
|
|---|
| 38 | SB = 0x49; //0100.1001
|
|---|
| 39 | break;
|
|---|
| 40 | case 2:
|
|---|
| 41 | SB = 0x58; //0101.0010
|
|---|
| 42 | break;
|
|---|
| 43 | case 3:
|
|---|
| 44 | SB = 0x58; //0101.0011
|
|---|
| 45 | break;
|
|---|
| 46 | } // end of switch-case
|
|---|
| 47 | } // end of if (channel < some_number)
|
|---|
| 48 |
|
|---|
| 49 | PORTC = (PORTC & 0x80) | (0x7F & SB); // Here the muxer is switched.
|
|---|
| 50 | }
|
|---|
| 51 |
|
|---|
| 52 | void Set_T_Muxer(U08 channel) {
|
|---|
| 53 | U08 SA = 0x00;
|
|---|
| 54 |
|
|---|
| 55 | switch (channel/16) {
|
|---|
| 56 | case 0:
|
|---|
| 57 | SA |= 1<<4; // 0001.0000
|
|---|
| 58 | break;
|
|---|
| 59 | case 1:
|
|---|
| 60 | break; // 0000.0000
|
|---|
| 61 | case 2:
|
|---|
| 62 | SA |= (1<<4)|(1<<5); // 0011.0000
|
|---|
| 63 | break;
|
|---|
| 64 | case 3:
|
|---|
| 65 | SA |= 1<<5; // 0010.0000
|
|---|
| 66 | break;
|
|---|
| 67 | }
|
|---|
| 68 |
|
|---|
| 69 | SA = SA | (channel%16);
|
|---|
| 70 |
|
|---|
| 71 | PORTA = (PORTA & 0xC0) | (0x3F & SA); // Here the muxer is switched.
|
|---|
| 72 | }
|
|---|
| 73 |
|
|---|
| 74 |
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.