Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

trice16McuReverse.h 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. /*! \file trice16McuReverse.h
  2. \author thomas.hoehenleitner [at] seerose.net
  3. *******************************************************************************/
  4. //! trice16m_0 writes trice data as fast as possible in a buffer.
  5. //! \param tid is a 16 bit Trice id in upper 2 bytes of a 32 bit value
  6. #define trice16m_0(tid) \
  7. TRICE_ENTER \
  8. TRICE_PUT(((TRICE_CYCLE) << 24) | idLH); \
  9. TRICE_LEAVE
  10. //! trice16m_1 writes trice data as fast as possible in a buffer.
  11. //! \param tid is a 16 bit Trice id in upper 2 bytes of a 32 bit value
  12. //! \param v0 a 16 bit value
  13. #define trice16m_1(tid, v0) \
  14. TRICE_ENTER \
  15. TRICE_PUT(((TRICE_CYCLE) << 24) | (2 << 16) | idLH); \
  16. /*TRICE_PUT((2 << 8) | ((TRICE_CYCLE) << 0) | ((0x4000 | (tid)) << 16));*/ \
  17. TRICE_PUT16_1(v0) \
  18. TRICE_LEAVE
  19. #define trice16m_2(tid, v0, v1) \
  20. TRICE_ENTER \
  21. TRICE_PUT(((TRICE_CYCLE) << 24) | (4 << 16) | idLH); \
  22. TRICE_PUT16_2(v0, v1); \
  23. TRICE_LEAVE
  24. #define trice16m_3(tid, v0, v1, v2) \
  25. TRICE_ENTER \
  26. TRICE_PUT(((TRICE_CYCLE) << 24) | (6 << 16) | idLH); \
  27. TRICE_PUT16_3(v0, v1, v2); \
  28. TRICE_LEAVE
  29. #define trice16m_4(tid, v0, v1, v2, v3) \
  30. TRICE_ENTER \
  31. TRICE_PUT(((TRICE_CYCLE) << 24) | (8 << 16) | idLH); \
  32. TRICE_PUT16_4(v0, v1, v2, v3); \
  33. TRICE_LEAVE
  34. #define trice16m_5(tid, v0, v1, v2, v3, v4) \
  35. TRICE_ENTER \
  36. TRICE_PUT(((TRICE_CYCLE) << 24) | (10 << 16) | idLH); \
  37. TRICE_PUT16_5(v0, v1, v2, v3, v4); \
  38. TRICE_LEAVE
  39. #define trice16m_6(tid, v0, v1, v2, v3, v4, v5) \
  40. TRICE_ENTER \
  41. TRICE_PUT(((TRICE_CYCLE) << 24) | (12 << 16) | idLH); \
  42. TRICE_PUT16_6(v0, v1, v2, v3, v4, v5); \
  43. TRICE_LEAVE
  44. #define trice16m_7(tid, v0, v1, v2, v3, v4, v5, v6) \
  45. TRICE_ENTER \
  46. TRICE_PUT(((TRICE_CYCLE) << 24) | (14 << 16) | idLH); \
  47. TRICE_PUT16_7(v0, v1, v2, v3, v4, v5, v6); \
  48. TRICE_LEAVE
  49. #define trice16m_8(tid, v0, v1, v2, v3, v4, v5, v6, v7) \
  50. TRICE_ENTER \
  51. TRICE_PUT(((TRICE_CYCLE) << 24) | (16 << 16) | idLH); \
  52. TRICE_PUT16_8(v0, v1, v2, v3, v4, v5, v6, v7); \
  53. TRICE_LEAVE
  54. #define trice16m_9(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8) \
  55. TRICE_ENTER \
  56. TRICE_PUT(((TRICE_CYCLE) << 24) | (18 << 16) | idLH); \
  57. TRICE_PUT16_9(v0, v1, v2, v3, v4, v5, v6, v7, v8); \
  58. TRICE_LEAVE
  59. #define trice16m_10(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) \
  60. TRICE_ENTER \
  61. TRICE_PUT(((TRICE_CYCLE) << 24) | (20 << 16) | idLH); \
  62. TRICE_PUT16_10(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); \
  63. TRICE_LEAVE
  64. #define trice16m_11(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) \
  65. TRICE_ENTER \
  66. TRICE_PUT(((TRICE_CYCLE) << 24) | (22 << 16) | idLH); \
  67. TRICE_PUT16_11(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10); \
  68. TRICE_LEAVE
  69. #define trice16m_12(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) \
  70. TRICE_ENTER \
  71. TRICE_PUT(((TRICE_CYCLE) << 24) | (24 << 16) | idLH); \
  72. TRICE_PUT16_12(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) \
  73. TRICE_LEAVE
  74. #define Trice16m_0(tid) \
  75. TRICE_ENTER \
  76. uint16_t ts = TriceStamp16; \
  77. TRICE_PUT(((IdLH) << 16) | IdLH) \
  78. TRICE_PUT((TRICE_CYCLE << 24) | tsL | tsH); \
  79. TRICE_LEAVE
  80. //! Trice16m_1 writes trice data as fast as possible in a buffer.
  81. //! \param tid is a 16 bit Trice id in upper 2 bytes of a 32 bit value
  82. //! \param v0 a 16 bit value
  83. #define Trice16m_1(tid, v0) \
  84. TRICE_ENTER \
  85. uint16_t ts = TriceStamp16; \
  86. TRICE_PUT(((IdLH) << 16) | IdLH) \
  87. TRICE_PUT((TRICE_CYCLE << 24) | (2 << 16) | tsL | tsH); \
  88. TRICE_PUT16_1(v0) \
  89. TRICE_LEAVE
  90. #define Trice16m_2(tid, v0, v1) \
  91. TRICE_ENTER \
  92. uint16_t ts = TriceStamp16; \
  93. TRICE_PUT(((IdLH) << 16) | IdLH) \
  94. TRICE_PUT((TRICE_CYCLE << 24) | (4 << 16) | tsL | tsH); \
  95. TRICE_PUT16_2(v0, v1); \
  96. TRICE_LEAVE
  97. #define Trice16m_3(tid, v0, v1, v2) \
  98. TRICE_ENTER \
  99. uint16_t ts = TriceStamp16; \
  100. TRICE_PUT(((IdLH) << 16) | IdLH) \
  101. TRICE_PUT((TRICE_CYCLE << 24) | (6 << 16) | tsL | tsH); \
  102. TRICE_PUT16_3(v0, v1, v2); \
  103. TRICE_LEAVE
  104. #define Trice16m_4(tid, v0, v1, v2, v3) \
  105. TRICE_ENTER \
  106. uint16_t ts = TriceStamp16; \
  107. TRICE_PUT(((IdLH) << 16) | IdLH) \
  108. TRICE_PUT((TRICE_CYCLE << 24) | (8 << 16) | tsL | tsH); \
  109. TRICE_PUT16_4(v0, v1, v2, v3); \
  110. TRICE_LEAVE
  111. #define Trice16m_5(tid, v0, v1, v2, v3, v4) \
  112. TRICE_ENTER \
  113. uint16_t ts = TriceStamp16; \
  114. TRICE_PUT(((IdLH) << 16) | IdLH) \
  115. TRICE_PUT((TRICE_CYCLE << 24) | (10 << 16) | tsL | tsH); \
  116. TRICE_PUT16_5(v0, v1, v2, v3, v4); \
  117. TRICE_LEAVE
  118. #define Trice16m_6(tid, v0, v1, v2, v3, v4, v5) \
  119. TRICE_ENTER \
  120. uint16_t ts = TriceStamp16; \
  121. TRICE_PUT(((IdLH) << 16) | IdLH) \
  122. TRICE_PUT((TRICE_CYCLE << 24) | (12 << 16) | tsL | tsH); \
  123. TRICE_PUT16_6(v0, v1, v2, v3, v4, v5); \
  124. TRICE_LEAVE
  125. #define Trice16m_7(tid, v0, v1, v2, v3, v4, v5, v6) \
  126. TRICE_ENTER \
  127. uint16_t ts = TriceStamp16; \
  128. TRICE_PUT(((IdLH) << 16) | IdLH) \
  129. TRICE_PUT((TRICE_CYCLE << 24) | (14 << 16) | tsL | tsH); \
  130. TRICE_PUT16_7(v0, v1, v2, v3, v4, v5, v6); \
  131. TRICE_LEAVE
  132. #define Trice16m_8(tid, v0, v1, v2, v3, v4, v5, v6, v7) \
  133. TRICE_ENTER \
  134. uint16_t ts = TriceStamp16; \
  135. TRICE_PUT(((IdLH) << 16) | IdLH) \
  136. TRICE_PUT((TRICE_CYCLE << 24) | (16 << 16) | tsL | tsH); \
  137. TRICE_PUT16_8(v0, v1, v2, v3, v4, v5, v6, v7); \
  138. TRICE_LEAVE
  139. #define Trice16m_9(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8) \
  140. TRICE_ENTER \
  141. uint16_t ts = TriceStamp16; \
  142. TRICE_PUT(((IdLH) << 16) | IdLH) \
  143. TRICE_PUT((TRICE_CYCLE << 24) | (18 << 16) | tsL | tsH); \
  144. TRICE_PUT16_9(v0, v1, v2, v3, v4, v5, v6, v7, v8); \
  145. TRICE_LEAVE
  146. #define Trice16m_10(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) \
  147. TRICE_ENTER \
  148. uint16_t ts = TriceStamp16; \
  149. TRICE_PUT(((IdLH) << 16) | IdLH) \
  150. TRICE_PUT((TRICE_CYCLE << 24) | (20 << 16) | tsL | tsH); \
  151. TRICE_PUT16_10(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); \
  152. TRICE_LEAVE
  153. #define Trice16m_11(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) \
  154. TRICE_ENTER \
  155. uint16_t ts = TriceStamp16; \
  156. TRICE_PUT(((IdLH) << 16) | IdLH) \
  157. TRICE_PUT((TRICE_CYCLE << 24) | (22 << 16) | tsL | tsH); \
  158. TRICE_PUT16_11(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10); \
  159. TRICE_LEAVE
  160. #define Trice16m_12(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) \
  161. TRICE_ENTER \
  162. uint16_t ts = TriceStamp16; \
  163. TRICE_PUT(((IdLH) << 16) | IdLH) \
  164. TRICE_PUT((TRICE_CYCLE << 24) | (24 << 16) | tsL | tsH); \
  165. TRICE_PUT16_12(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) \
  166. TRICE_LEAVE
  167. #define TRice16m_0(tid) \
  168. TRICE_ENTER \
  169. uint32_t ts = TriceStamp32; \
  170. TRICE_PUT(tsHL | tsHH | IDLH) \
  171. TRICE_PUT((TRICE_CYCLE << 24) | tsLL | tsLH) \
  172. TRICE_LEAVE
  173. //! TRice16m_1 writes trice data as fast as possible in a buffer.
  174. //! \param tid is a 14 bit Trice id in upper 2 bytes of a 32 bit value
  175. //! \param v0 a 16 bit value
  176. #define TRice16m_1(tid, v0) \
  177. TRICE_ENTER \
  178. uint32_t ts = TriceStamp32; \
  179. TRICE_PUT(tsHL | tsHH | IDLH) \
  180. TRICE_PUT((TRICE_CYCLE << 24) | (2 << 16) | tsLL | tsLH) \
  181. TRICE_PUT16_1(v0) \
  182. TRICE_LEAVE
  183. #define TRice16m_2(tid, v0, v1) \
  184. TRICE_ENTER \
  185. uint32_t ts = TriceStamp32; \
  186. TRICE_PUT(tsHL | tsHH | IDLH) \
  187. TRICE_PUT((TRICE_CYCLE << 24) | (4 << 16) | tsLL | tsLH) \
  188. TRICE_PUT16_2(v0, v1); \
  189. TRICE_LEAVE
  190. #define TRice16m_3(tid, v0, v1, v2) \
  191. TRICE_ENTER \
  192. uint32_t ts = TriceStamp32; \
  193. TRICE_PUT(tsHL | tsHH | IDLH) \
  194. TRICE_PUT((TRICE_CYCLE << 24) | (6 << 16) | tsLL | tsLH) \
  195. TRICE_PUT16_3(v0, v1, v2); \
  196. TRICE_LEAVE
  197. #define TRice16m_4(tid, v0, v1, v2, v3) \
  198. TRICE_ENTER \
  199. uint32_t ts = TriceStamp32; \
  200. TRICE_PUT(tsHL | tsHH | IDLH) \
  201. TRICE_PUT((TRICE_CYCLE << 24) | (8 << 16) | tsLL | tsLH) \
  202. TRICE_PUT16_4(v0, v1, v2, v3); \
  203. TRICE_LEAVE
  204. #define TRice16m_5(tid, v0, v1, v2, v3, v4) \
  205. TRICE_ENTER \
  206. uint32_t ts = TriceStamp32; \
  207. TRICE_PUT(tsHL | tsHH | IDLH) \
  208. TRICE_PUT((TRICE_CYCLE << 24) | (10 << 16) | tsLL | tsLH) \
  209. TRICE_PUT16_5(v0, v1, v2, v3, v4); \
  210. TRICE_LEAVE
  211. #define TRice16m_6(tid, v0, v1, v2, v3, v4, v5) \
  212. TRICE_ENTER \
  213. uint32_t ts = TriceStamp32; \
  214. TRICE_PUT(tsHL | tsHH | IDLH) \
  215. TRICE_PUT((TRICE_CYCLE << 24) | (12 << 16) | tsLL | tsLH) \
  216. TRICE_PUT16_6(v0, v1, v2, v3, v4, v5); \
  217. TRICE_LEAVE
  218. #define TRice16m_7(tid, v0, v1, v2, v3, v4, v5, v6) \
  219. TRICE_ENTER \
  220. uint32_t ts = TriceStamp32; \
  221. TRICE_PUT(tsHL | tsHH | IDLH) \
  222. TRICE_PUT((TRICE_CYCLE << 24) | (14 << 16) | tsLL | tsLH) \
  223. TRICE_PUT16_7(v0, v1, v2, v3, v4, v5, v6); \
  224. TRICE_LEAVE
  225. #define TRice16m_8(tid, v0, v1, v2, v3, v4, v5, v6, v7) \
  226. TRICE_ENTER \
  227. uint32_t ts = TriceStamp32; \
  228. TRICE_PUT(tsHL | tsHH | IDLH) \
  229. TRICE_PUT((TRICE_CYCLE << 24) | (16 << 16) | tsLL | tsLH) \
  230. TRICE_PUT16_8(v0, v1, v2, v3, v4, v5, v6, v7); \
  231. TRICE_LEAVE
  232. #define TRice16m_9(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8) \
  233. TRICE_ENTER \
  234. uint32_t ts = TriceStamp32; \
  235. TRICE_PUT(tsHL | tsHH | IDLH) \
  236. TRICE_PUT((TRICE_CYCLE << 24) | (18 << 16) | tsLL | tsLH) \
  237. TRICE_PUT16_9(v0, v1, v2, v3, v4, v5, v6, v7, v8); \
  238. TRICE_LEAVE
  239. #define TRice16m_10(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) \
  240. TRICE_ENTER \
  241. uint32_t ts = TriceStamp32; \
  242. TRICE_PUT(tsHL | tsHH | IDLH) \
  243. TRICE_PUT((TRICE_CYCLE << 24) | (20 << 16) | tsLL | tsLH) \
  244. TRICE_PUT16_10(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); \
  245. TRICE_LEAVE
  246. #define TRice16m_11(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) \
  247. TRICE_ENTER \
  248. uint32_t ts = TriceStamp32; \
  249. TRICE_PUT(tsHL | tsHH | IDLH) \
  250. TRICE_PUT((TRICE_CYCLE << 24) | (22 << 16) | tsLL | tsLH) \
  251. TRICE_PUT16_11(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10); \
  252. TRICE_LEAVE
  253. #define TRice16m_12(tid, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) \
  254. TRICE_ENTER \
  255. uint32_t ts = TriceStamp32; \
  256. TRICE_PUT(tsHL | tsHH | IDLH) \
  257. TRICE_PUT((TRICE_CYCLE << 24) | (24 << 16) | tsLL | tsLH) \
  258. TRICE_PUT16_12(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) \
  259. TRICE_LEAVE