From 472d0135dfb487295d95bd97bbe5fa14dc7cc7d4 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Mon, 25 Mar 2019 15:02:24 +0100 Subject: [PATCH] dac funktioniert --- B15F.elf | Bin 9400 -> 9880 bytes B15F.hex | 95 +++++++++++++++++++++++++++++----------------------- Makefile | 2 +- TLC5615.cpp | 13 +++++++ TLC5615.h | 18 ++++++++++ main.cpp | 38 +++++++++++++++++++-- main.hex | 20 ----------- spi.h | 3 ++ 8 files changed, 124 insertions(+), 65 deletions(-) create mode 100644 TLC5615.cpp create mode 100644 TLC5615.h delete mode 100644 main.hex diff --git a/B15F.elf b/B15F.elf index d3db3be5b50c41c98c9ed590203f7b25a7207503..3007bd3f1efeaa4b5458d83e991a8857a30f3840 100644 GIT binary patch delta 2444 zcmbW3e@L8l9LGQ3=kCjooUO^}bgg2AX%5zYB(}B~fu2sMCapG?QNiP- zMA~Sc-@9e5tR#{zb6%Zv_|i}vVy zonlfJi-Ko9s`xB@e#xhOwJ@W(CyL*`C9-34VzT<1^r@xn*eQ_}yN*s&G~ylcp7)OA z1k1)kHwS)xS1WGls~N7DU!n=3veAF~ZcNK&(Grr>yzoZkok(`4H9$k=4AtmCmdT1865~Uzv^>vI zTQV0#_s9C6$RnnkzjVB4%iB^J~;Az650`8V)e`ZA1#+yZBs zKOjDGQ3if$Yzv{4VC=cxc%$xP#u$F_!Z$ne>yoSzaRE=jVNJ-q2fTouW(qu;9AM=4 zf)~*n&G<3c{0qlx$iXw_$Up7ik1fXhdI1;U7=!KOt|&AKCW`O_J~w@*vyS@FUb6(? z;(~v%#hL$f#676YzGFFDDRzwKhhSp49FEKAxy&eF3+x7wIyb`=zV^quqKL{>G{z@}{JJ|ZG=fhStf=^+) zwwiGjxtVJ6R=cSi311^vZ6@@B?OS#MJcFva`Ef-3;HPbZd*QzedeGG`;Yq~xGs2UP z_`GdAAMquyYMz&o%A&c}qcCZ~CB&(8(hznXQ9coo>JUoYr!4?O}Y zD57zNVI~#qAgVRLnGaHoG3f1(U?$%BBS8f{LyH*oh_U+oddq*8}U1fb^)sqd| zI;g4X#kSU-gNK?btEg$;uI*OF1Bcss_Jq5SwAFXf{%~u>_@hNn3FUC_c-()l$g?SJ zG?m6L6&DKmeMzp;;g*Xf>&2{G6$p6vf1FJDa3H|$mO!a8>Xt)+QgKy&8d#@vWyv4m zlX+4JmMZ7+`~t;R>p?Qca@ B4~zf+ delta 2068 zcmbW2U1(ED6vxlpq_)Nw(x`0}wMm-9qDZRl`s70mD6Fn8!md83wJo($&{lU>Ebej} zx}bunmr3!1MXUI*e!z->Mbrlo{FXLF-$ad4eGs8m)cUZP{h#}hOfItE4oq`?bIzRk z&zY0-=$gyl9S&<3qee73$L}HHSwTb^robEoljtMA(OO&W059Gf zQQLT?=~CtMiD3TrXfE%)9y#(^1TuTXt#3vu?@k0V>xDn_J0_9Lh&H{KHjnO0A4>-^ z{j@pnSglFN>NMA$8N)`s;m`C^y&RU$`GfPYKGRY&7hk{t0~%^J4gRt5$#`* zK`-5+wOEIegi=N7l2#=Gs6jeu)uU>_sm7PGlw|xzmenY0)j)sV$Okf=cz{0BI!N7P zmh~4|pWlkDNz2O7$6+ge3#Iby`5opSe`Y^r*Lo*StH`5iYUIY+i8Z^?96s(Gb7-{J zG4bi8@d8?a&J@=)`V;nPg|EWCV{=%FnGM^Xsw?Qu*X%7=AwgsmXx8Em_@{yoSZ)e} zBVg`r9?Xs4O_(Wg2;2<2xL+DG>vfLWTDEJvuv?9Szu(1&!0M@|T>cB-K}_e=J1+kt zu&uHUGRF(AuyD{6ZOMKI_S)aRAbIE?SAr@$0V-?`-d_)X0ODo7<^mYXHD}f8PWCXo zt5h%eM;Eubc)N>x!N+k@kf)~6J}^<5|6t8a116hjKEg?j^pYGLcwPx$LD#@Vx!~I_ ze#r64b;rOTF++SH1bl`)8zoAC`T8~J0QG%h9=*IiP4>?nYvlSa17AdvCOg4$uqx<# z@DO}4+rNSL+arwnce>(ty7)JpHz+qa;R-nC;=f&d1MEB@cWe$k2{-m5E#G+5<$nt< zG+PQ;p#BL9@4(aT4L%lA>@Y#q;4V~PrS1O-$x9vRr3LV-6^;Z%!e#ofwSNjV5bLemc_Sg zG*Y&p(G##O*c9*{Y<+_)K~pNq4~T$OK?}iLLC(P!S|U5<>e;t*9}8d0u8#JfyLYxM zT9U1d{2;O|(MFN|qhXeimt#R~&?E1~<_o|45NoIy#CETo6K~+OJhCgE5J73g z=V_;>$SYX8ACfQd@iHWRiG;Q&DiZ!C^APx;IpTCilF`awCq&KsPR> 6); + spi.pushByte(val << 2); + spi.setAdr(SPIADR::NONE); +} diff --git a/TLC5615.h b/TLC5615.h new file mode 100644 index 0000000..6709308 --- /dev/null +++ b/TLC5615.h @@ -0,0 +1,18 @@ +#ifndef TLC5615_H +#define TLC5615_H + +#include "spi.h" + +class TLC5615 +{ +public: + TLC5615(SPI&, uint8_t); + void setValue(uint16_t) const; + + +private: + SPI& spi; + const uint8_t adr; +}; + +#endif // TLC5615_H diff --git a/main.cpp b/main.cpp index b074435..5e1e204 100644 --- a/main.cpp +++ b/main.cpp @@ -1,19 +1,51 @@ #include #include #include +#include #include "mcp23s17.h" +#include "tlc5615.h" + +#define LED B0 SPI spi; MCP23S17 beba0(spi, SPIADR::BEBA0); +MCP23S17 sw(spi, SPIADR::SWITCH); +TLC5615 dac0(spi, SPIADR::AA0); + +ISR(WDT_vect) +{ + while(1) + { + dWrite(LED, HIGH); + _delay_ms(200); + dWrite(LED, LOW); + _delay_ms(200); + } + WDTCSR |= _BV(WDIE); +} + +int main() +{ + //WDTCSR = _BV(WDIE) | _BV(WDP3) | _BV(WDP0); + dMode(LED, OUT); + dWrite(LED, LOW); + wdt_reset(); + + sei(); -int main() { spi.init(); beba0.setDirA(0x00); // alle Ausgang beba0.setDirB(0xFF); // alle Eingang + sw.setDirB(0xFF); // alle Eingang - while(1) { - beba0.writePortA(beba0.readPortB()); + while(1) + { + for(uint16_t i = 0; i < 1024; i++) + { + dac0.setValue(i); + _delay_us(10); + } } return 0; diff --git a/main.hex b/main.hex deleted file mode 100644 index d91cc8e..0000000 --- a/main.hex +++ /dev/null @@ -1,20 +0,0 @@ -:100000000C9446000C9450000C9450000C9450003A -:100010000C9450000C9450000C9450000C94500020 -:100020000C9450000C9450000C9450000C94500010 -:100030000C9450000C9450000C9450000C94500000 -:100040000C9450000C9450000C9450000C945000F0 -:100050000C9450000C9450000C9450000C945000E0 -:100060000C9450000C9450000C9450000C945000D0 -:100070000C9450000C9450000C9450000C945000C0 -:100080000C9450000C9450000C94500011241FBE8E -:10009000CFEFD0E4DEBFCDBF0E9486000C9490006D -:1000A0000C940000CF93DF93CDB7DEB784E290E0ED -:1000B00024E230E0F9012081206BFC0120838CE4F4 -:1000C00090E021E5FC0120830000DF91CF910895AD -:1000D000CF93DF931F92CDB7DEB789838EE490E094 -:1000E0002981FC0120838DE490E0FC0180818095D2 -:1000F000881F8827881F882309F0F5CF8EE490E0B9 -:10010000FC0180810F90DF91CF910895CF93DF9311 -:10011000CDB7DEB70E94520080E00E946800FCCF9D -:04012000F894FFCF81 -:00000001FF diff --git a/spi.h b/spi.h index 539867b..8999756 100644 --- a/spi.h +++ b/spi.h @@ -15,8 +15,11 @@ #define DMUX3 D4 enum SPIADR { + AA0 = 0, + AA1 = 1, BEBA0 = 2, BEBA1 = 3, + SWITCH = 5, NONE = 7, };