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.
Dependents: UITDSP_ADDA_Example2
Diff: tim4_slaveSelect.hpp
- Revision:
- 0:46d099dfd9d6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tim4_slaveSelect.hpp Sat Mar 14 06:49:49 2015 +0000
@@ -0,0 +1,62 @@
+//------------------------------------------------------
+// Class for generate SPI slave select using TIM4
+//
+// Default pin assignments: PB_6 (D10)
+// PB_7, PB_8 (D15), and PB_9 (D14) also can be used
+// 2014/12/21, Copyright (c) 2014 MIKAMI, Naoki
+//------------------------------------------------------
+
+#ifndef TIM4_SLAVESELECT_HPP
+#define TIM4_SLAVESELECT_HPP
+
+#include "mbed.h"
+
+namespace Mikami
+{
+ class Tim4_ss
+ {
+ public:
+ Tim4_ss(uint16_t psc, // prescaler
+ uint16_t arr = 18, // auto-reload register
+ PinName pin = PB_6) // pin name
+ : myTim_(TIM4)
+ {
+ PwmOut css(pin);
+ myTim_->CR1 |= TIM_CR1_OPM; // one-pulse mode
+ myTim_->PSC = psc; // prescaler
+ myTim_->ARR = arr; // pulse width
+ if (pin == PB_6) myTim_->CCR1 = 1;
+ if (pin == PB_7) myTim_->CCR2 = 1;
+ if (pin == PB_8) myTim_->CCR3 = 1;
+ if (pin == PB_9) myTim_->CCR4 = 1;
+ if ( (pin != PB_6) && (pin != PB_7)
+ &&(pin != PB_8) && (pin != PB_9) )
+ {
+ fprintf(stderr, "\r\nIllegal pin name in Tim4_ss class\r\n");
+ while (true) {}
+ }
+ }
+ // Generate slave select
+ void SlaveSelect()
+ {
+ myTim_->CNT = 0; // Set counter 0
+ myTim_->CR1 |= TIM_CR1_CEN; // Enable TIM4
+ __NOP();
+ __NOP();
+ __NOP();
+ __NOP();
+#ifdef __STM32F411xE_H
+ __NOP();
+ __NOP();
+#endif // __STM32F411xE_H
+ }
+ private:
+ TIM_TypeDef* myTim_;
+
+ // Forbid to use copy constructor
+ Tim4_ss(const Tim4_ss&);
+ // Forbid to use substitution operator
+ Tim4_ss operator=(const Tim4_ss&);
+ };
+}
+#endif // TIM4_SLAVESELECT_HPP