Simon Ford
/
MAX5842
main.cpp@0:f064d28957e3, 2009-09-01 (annotated)
- Committer:
- simon
- Date:
- Tue Sep 01 21:57:24 2009 +0000
- Revision:
- 0:f064d28957e3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon | 0:f064d28957e3 | 1 | // example code to get MAX5842 working |
simon | 0:f064d28957e3 | 2 | // Copyright (c) 2009, sford |
simon | 0:f064d28957e3 | 3 | // Released under the MIT License: http://mbed.org/license/mit |
simon | 0:f064d28957e3 | 4 | |
simon | 0:f064d28957e3 | 5 | // MAX5842 setup: ADD = 0v, REF = 3.3v, OUTA -> p16 |
simon | 0:f064d28957e3 | 6 | |
simon | 0:f064d28957e3 | 7 | #include "mbed.h" |
simon | 0:f064d28957e3 | 8 | |
simon | 0:f064d28957e3 | 9 | AnalogIn result(p16); // input to test MAX5842 output |
simon | 0:f064d28957e3 | 10 | DigitalOut led(LED1); |
simon | 0:f064d28957e3 | 11 | |
simon | 0:f064d28957e3 | 12 | I2C max5842(p9, p10); |
simon | 0:f064d28957e3 | 13 | |
simon | 0:f064d28957e3 | 14 | int main() { |
simon | 0:f064d28957e3 | 15 | |
simon | 0:f064d28957e3 | 16 | max5842.frequency(400000); // 400 KHz |
simon | 0:f064d28957e3 | 17 | |
simon | 0:f064d28957e3 | 18 | // ADDR: 011 110 ADD, where ADD = 0 |
simon | 0:f064d28957e3 | 19 | // 011 1100 == 0x3C |
simon | 0:f064d28957e3 | 20 | const int addr = 0x3C; |
simon | 0:f064d28957e3 | 21 | |
simon | 0:f064d28957e3 | 22 | // Power up the DAC |
simon | 0:f064d28957e3 | 23 | // - Extended Commands [ 1111 0000 xx DCBA PD1 PD0 ] |
simon | 0:f064d28957e3 | 24 | // - DCBA = 1111 means select all, PD = 00 means power on |
simon | 0:f064d28957e3 | 25 | char power_up[2] = {0xF0, 0x3C}; |
simon | 0:f064d28957e3 | 26 | max5842.write(addr, power_up, 2); |
simon | 0:f064d28957e3 | 27 | |
simon | 0:f064d28957e3 | 28 | // set A output to 50% |
simon | 0:f064d28957e3 | 29 | // 0 (set A) D DD |
simon | 0:f064d28957e3 | 30 | char data[2] = {0x08, 0x00}; |
simon | 0:f064d28957e3 | 31 | max5842.write(addr, data, 2); |
simon | 0:f064d28957e3 | 32 | |
simon | 0:f064d28957e3 | 33 | while(1) { |
simon | 0:f064d28957e3 | 34 | printf("res = %f\n", result.read()); |
simon | 0:f064d28957e3 | 35 | led = !led; |
simon | 0:f064d28957e3 | 36 | wait(0.25); |
simon | 0:f064d28957e3 | 37 | } |
simon | 0:f064d28957e3 | 38 | } |