| ??? 02/14/20 22:58 Modified: 02/14/20 22:59 Read: times | #190972 - Yay Responding to: ???'s previous message | 
| Wow, this is craziness. Today for baseline, I tried to create the original issue (no L) and the defect has moved. I added underscores for visibility.
 
#define  SYS_CLK   12000000L           // Tcyc = 1/12MHz = 83ns
static U16 code BaudParams[NUM_BAUDRATES] =
   {
   65536 - (SYS_CLK/(1*2*1200)),       // 0xEC78 (exact)
   65536 - (SYS_CLK/(1*2*2400)),       // 0xF63C (exact)
   65536 - (SYS_CLK/(1*2*4800)),       // 0xFB1E (exact)
   65536 - (SYS_CLK/(1*2*9600)),       // 0xFD8F (exact)
   65536 - (SYS_CLK/(1*2*19200)),      // 0xFEC7 (0.16%)  yesterday's defect, now ok (except rounding)
   65536 - (SYS_CLK/(1*2*38400)),      // 0xFF64 (0.16%)
   65536 - (SYS_CLK/(1*2*57600)),      // 0xFF98 (0.16%)
   65536 - (SYS_CLK/(1*2*115200)),     // 0xFFCC (0.16%)
   65536 - (SYS_CLK/(1*2*31250))       // 0xFF40 (exact)  today's issue
   };
dump:
 A160 : 12 9D 0A C2 86 7F E8 7E  03 02 9D 0A EC_78 F6_3C
 A170 : FB_1E FD_8F FE_C7 FF_64  FF_98 FF_CC 0F_70 E5 5C
 Now with the L added for each denominator. 
static U16 code BaudParams[NUM_BAUDRATES] =
   {
   65536 - (SYS_CLK/(1L*2*1200)),       // 0xEC78 (exact)
   65536 - (SYS_CLK/(1L*2*2400)),       // 0xF63C (exact)
   65536 - (SYS_CLK/(1L*2*4800)),       // 0xFB1E (exact)
   65536 - (SYS_CLK/(1L*2*9600)),       // 0xFD8F (exact)
   65536 - (SYS_CLK/(1L*2*19200)),      // 0xFEC7 (0.16%) See below.
   65536 - (SYS_CLK/(1L*2*38400)),      // 0xFF64 (0.16%)
   65536 - (SYS_CLK/(1L*2*57600)),      // 0xFF98 (0.16%)
   65536 - (SYS_CLK/(1L*2*115200)),     // 0xFFCC (0.16%)
   65536 - (SYS_CLK/(1L*2*31250))       // 0xFF40 (exact)
   };
dump:
 A160 : 12 9D 0A C2 86 7F E8 7E  03 02 9D 0A EC_78 F6_3C
 A170 : FB_1E FD_8F FE_C8 FF_64  FF_98 FF_CC FF_40 E5 5C
 Issue resolved and rounding/truncation changed. (I will fix the check too!) Thanks gang! | 
| Topic | Author | Date | 
| Keil C51 Bug | 01/01/70 00:00 | |
| integer overflow | 01/01/70 00:00 | |
| Same result (bad) | 01/01/70 00:00 | |
| Spreadsheet Analysis | 01/01/70 00:00 | |
| please try again | 01/01/70 00:00 | |
| Yay   | 01/01/70 00:00 | 



