Mcucpp
55 строк · 959.0 Байт
1
2#include <iopins.h>
3#include <usart.h>
4#include <watchdog.h>
5#include <flash_crc_check.h>
6#include <tiny_ostream.h>
7#include <delay.h>
8using namespace Mcucpp;
9using namespace Mcucpp::IO;
10
11class DebugOut
12{
13public:
14void put(char c)
15{
16if(c == '\n')
17{
18Usart1::Write('\r');
19}
20Usart1::Write(c);
21}
22};
23
24typedef basic_ostream<DebugOut> ostream;
25ostream cout;
26
27typedef Pg13 Led;
28
29int main()
30{
31Watchdog::Start(1000);
32Porta::Enable();
33Led::SetConfiguration(Led::Port::Out);
34
35if(FlashCrcExpected() != FlashCrcComputed())
36{
37while(true) // cause watchdog to reset MCU after 1 sec
38{
39Led::Toggle();
40delay_ms<50, F_CPU>();
41}
42}
43
44Usart1::Init(9600);
45Usart1::SelectTxRxPins(0, 0);
46
47cout << hex << "FlashCrcExpected=" << FlashCrcExpected() << ", FlashCrcComputed=" << FlashCrcComputed();
48
49while(1)
50{
51Led::Toggle();
52delay_ms<200, F_CPU>();
53Watchdog::Reset();
54}
55return 0;
56}
57
58
59