blob: 5b97eebe78d142dc882e3a2f8c87ebb2072e950a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
/*
sfr16.c
*/
#include <testfwk.h>
#if defined (__SDCC_mcs51)
__sfr __at 0x8A SFR_LSB; //timer 0 low byte
__sfr __at 0x8C SFR_MSB; //timer 0 high byte
__sfr16 __at 0x8C8A SFR_16; //timer 0
__sfr32 __at 0x8C8ACDCC SFR_32; //timer 0 & 2
#elif defined (__SDCC_ds390)
__sfr __at 0x8B SFR_LSB; //timer 1 low byte
__sfr __at 0x8D SFR_MSB; //timer 1 high byte
__sfr16 __at 0x8D8B SFR_16; //timer 1
__sfr32 __at 0x8D8B8090 SFR_32; //timer 1 & P4 & P1
#endif
void
test_sfr (void)
{
#if defined (__SDCC_mcs51) || defined (__SDCC_ds390)
SFR_16 = 0x00FE;
ASSERT (SFR_MSB == 0x00);
ASSERT (SFR_LSB == 0xFE);
SFR_16++;
ASSERT (SFR_MSB == 0x00);
ASSERT (SFR_LSB == 0xFF);
SFR_16++;
ASSERT (SFR_MSB == 0x01);
ASSERT (SFR_LSB == 0x00);
SFR_LSB++;
ASSERT (SFR_16 == 0x0101);
SFR_32 = 0x12345678;
SFR_32 -= 0x02040608;
ASSERT (SFR_32 == 0x10305070);
#endif
}
|