![](/media/cache/profiles/8631e5b91354a846f00dbbf16ad94259.jpg.50x50_q85.jpg)
Lab 3 example 2, no debugging
Fork of DACandticker_sample_with_debug by
DAC Ticker
- Sample code for part 2 of lab 3 using the DAC, called from a Ticker.
- Note that to use AnalogOut from the Ticker (an ISR), we create a version without locking.
Diff: main.cpp
- Revision:
- 4:75ad475aff41
- Parent:
- 3:2bf79a3c3cbc
- Child:
- 5:5161dd5f273e
--- a/main.cpp Wed Jan 23 17:56:42 2019 +0000 +++ b/main.cpp Mon Feb 04 16:12:23 2019 +0000 @@ -2,6 +2,10 @@ // ----------------------- // Periodically write to the AnalogOut to create a sine wave // Alternate between two fixed frequencies every 5 sec +// +// This code uses the Ticker API to create a periodic interrupt +// Devices used in this way must not call locks; a variant of +// the AnalogOut device w/o locking is created for this. // // Updated for mbed 5 @@ -10,8 +14,21 @@ #include "mbed.h" #include "sineTable.h" +// -------------------------- +// This declaration introduces a derived version of the mbed AnalogOut +// class with the locking removed. +// You do NOT NEED TO UNDERSTAND this +class AnalogOut_unsafe : public AnalogOut { + public: + AnalogOut_unsafe (PinName pin) : AnalogOut (pin) {} + protected: + virtual void lock() {} + virtual void unlock() {} +}; +// -------------------------- + Ticker tick ; // Creates periodic interrupt -AnalogOut ao(PTE30) ; // Analog output +AnalogOut_unsafe ao(PTE30) ; // Analog output // Function called periodically // Write new value to AnalogOut