Код: Выделить всё
const char TelMesALARM[] PROGMEM = "$9 ALARM\r\n\0";Код: Выделить всё
const char TelMesALARM[] PROGMEM = "$9 ALARM\r\n\0";Код: Выделить всё
const char* tree = R"===(
* ,
_/^\_
< >
* /.-.\ *
* `/&\` *
,@.*;@,
/_o.I %_\ *
* (`'--:o(_@;
/`;--.,__ `') *
;@`o % O,*`'`&\
* (`'--)_@ ;o %'()\ *
/`;--._`''--._O'@;
/&*,()~o`;-.,_ `""`)
* /`,@ ;+& () o*`;-';\
(`""--.,_0 +% @' &()\
/-.,_ ``''--....-'`) *
* /@%;o`:;'--,.__ __.'\
;*,&(); @ % &^;~`"`o;@(); *
/(); o^~; & ().o@*&`;&%O\
jgs `"="==""==,,,.,="=="==="`
__.----.(\-''#####---...___...-----._
'` \)_`"""""`
.--' ')
o( )_-\
`"""` `
)===";
Код: Выделить всё
void copy_data_dma (uint8_t * src, uint8_t * dst, uint16_t count) {Код: Выделить всё
void TestColor(void) {
uint16_t color_array[4] = {0, 0, 0, 0};
unsigned int i;
t_color field_test_color;
ColorSensorTestHSI(color_array, 1);
while (kbdread() != KEY_DOWN) {
field_test_color = check_color();
copy_data_dma((uint8_t *)color_sensors, (uint8_t *)color_array, sizeof(color_array));
switch (field_test_color) {
case red: LaunchPad_Output(RED); break;
case green: LaunchPad_Output(GREEN); break;
case blue: LaunchPad_Output(BLUE); break;
case yellow: LaunchPad_Output(RED | GREEN); break;
case cyan: LaunchPad_Output(BLUE | GREEN); break;
case magenta: LaunchPad_Output(BLUE | RED); break;
case white: LaunchPad_Output(BLUE | RED | GREEN); break;
case black: LaunchPad_Output(0x00); break;
}
// for (i=0; i<4; i++) {
// color_array[i] = color_sensors[i];
// }
while(dma_copy_busy) WaitForInterrupt();
ColorSensorTestHSI(color_array, 0);
}
LaunchPad_Output(0);
}Код: Выделить всё
276 void TestColor(void) {
TestColor():
000064d8: B510 push {r4, r14}
277 uint16_t color_array[4] = {0, 0, 0, 0};
000064da: 2100 movs r1, #0
000064dc: 2208 movs r2, #8
000064de: F1AD0D08 sub.w r13, r13, #8
000064e2: 4668 mov r0, r13
000064e4: F004FD6C bl memset
281 ColorSensorTestHSI(color_array, 1);
000064e8: 2101 movs r1, #1
000064ea: 4668 mov r0, r13
000064ec: F7FEF900 bl ColorSensorTestHSI
282 while (kbdread() != KEY_DOWN) {
000064f0: F004F92E bl kbdread
000064f4: 2804 cmp r0, #4
000064f6: D044 beq $C$L64
000064f8: F24914E8 movw r4, #0x91e8
000064fc: F2C20400 movt r4, #0x2000
283 field_test_color = check_color();
$C$L54:
00006500: F000FBCE bl check_color
285 switch (field_test_color) {
00006504: 2807 cmp r0, #7
00006506: D826 bhi $C$L63
00006508: E8DFF000 tbb [pc, r0]
$C$C342, $C$SW1:
0000650c: 1E22 subs r2, r4, #0
0000650e: 161A asrs r2, r3, #0x18
00006510: 0E12 lsrs r2, r2, #0x18
00006512: 060A lsls r2, r1, #0x18
00006514: EA4F0808 mov.w r8, r8
292 case white: LaunchPad_Output(BLUE | RED | GREEN); break;
$C$L55:
00006518: 2007 movs r0, #7
0000651a: F004FB5D bl LaunchPad_Output
0000651e: E01A b $C$L63
290 case cyan: LaunchPad_Output(BLUE | GREEN); break;
$C$L56:
00006520: 2006 movs r0, #6
00006522: F004FB59 bl LaunchPad_Output
00006526: E016 b $C$L63
291 case magenta: LaunchPad_Output(BLUE | RED); break;
$C$L57:
00006528: 2005 movs r0, #5
0000652a: F004FB55 bl LaunchPad_Output
0000652e: E012 b $C$L63
288 case blue: LaunchPad_Output(BLUE); break;
$C$L58:
00006530: 2004 movs r0, #4
00006532: F004FB51 bl LaunchPad_Output
00006536: E00E b $C$L63
289 case yellow: LaunchPad_Output(RED | GREEN); break;
$C$L59:
00006538: 2003 movs r0, #3
0000653a: F004FB4D bl LaunchPad_Output
0000653e: E00A b $C$L63
287 case green: LaunchPad_Output(GREEN); break;
$C$L60:
00006540: 2002 movs r0, #2
00006542: F004FB49 bl LaunchPad_Output
00006546: E006 b $C$L63
286 case red: LaunchPad_Output(RED); break;
$C$L61:
00006548: 2001 movs r0, #1
0000654a: F004FB45 bl LaunchPad_Output
0000654e: E002 b $C$L63
293 case black: LaunchPad_Output(0x00); break;
$C$L62:
00006550: 2000 movs r0, #0
00006552: F004FB41 bl LaunchPad_Output
296 color_array[i] = color_sensors[i];
$C$L63:
00006556: 8820 ldrh r0, [r4]
00006558: F8B4E002 ldrh.w r14, [r4, #2]
0000655c: F8AD0000 strh.w r0, [r13]
299 ColorSensorTestHSI(color_array, 0);
00006560: 2100 movs r1, #0
296 color_array[i] = color_sensors[i];
00006562: F8B4C004 ldrh.w r12, [r4, #4]
00006566: F8ADE002 strh.w r14, [r13, #2]
0000656a: 88E3 ldrh r3, [r4, #6]
0000656c: F8ADC004 strh.w r12, [r13, #4]
299 ColorSensorTestHSI(color_array, 0);
00006570: 4668 mov r0, r13
296 color_array[i] = color_sensors[i];
00006572: F8AD3006 strh.w r3, [r13, #6]
299 ColorSensorTestHSI(color_array, 0);
00006576: F7FEF8BB bl ColorSensorTestHSI
282 while (kbdread() != KEY_DOWN) {
0000657a: F004F8E9 bl kbdread
0000657e: 2804 cmp r0, #4
00006580: D1BE bne $C$L54
301 LaunchPad_Output(0);
$C$L64:
00006582: 2000 movs r0, #0
00006584: F004FB28 bl LaunchPad_Output
00006588: B002 add r13, #8
0000658a: BD10 pop {r4, pc}
0000658c: EA4F0808 mov.w r8, r8Код: Выделить всё
unsigned char * volatile data_ptr;Я так понял, N*rand()/RAND_MAX не подходит? Почему?как можно случайное число получить (желательно с примером в CodeVisionAVR)
проще некуда.Serzh2000 писал(а):желательно попроще и поподробнее!
а вот с этим никак, ибо использую только avr-gcc (WinAVR).Serzh2000 писал(а):с примером в CodeVisionAVR
Код: Выделить всё
unsigned char *ptr = (void*)0;
int sum = 0;
for(int i=0; i < MAXRAM; ptr++) sum = calc_crc_1wire(sum, *ptr);
srand(sum);