I have some trouble understanding the C8051 clock and timers. In the tutorial code at http://www.colecovision.eu/mcs51/C8051F340%20380%20LED.shtml I get a timer interrupt at 1000 Hz. But I got the values for configuring the timer experimentally, and can't seem to get them from the datasheet.
According to the datsheet, at startup the internal oscillator is running at 24.5 Mhz (OSCICL reset value), then gets divided by 128 (OSCICN reset value) and then used for SYSCLK (CLKSEL rest value). Thus SYSCLK is 24.5 Mhz / 128 about 0.1914 Mhz. In the timer, this then gets divided by 12 (CKCON reset value) adn then sued as the frequency for incrementing the timer (TMOD value as in the tutorial code). Thus the timer increment frequency is 24.5 Mhz / 128 / 12 about 0.0159 Mhz. The tutorial code ssets the timer register to (65536 - 125) in the interrupt handler. Thus the timer interrupt frequency is 24.5 Mhz / 128 / 12 / 125 about 127 Hz. So from the datasheet I get 127 Hz. But on the hardware I see 1000 Hz. Philipp ------------------------------------------------------------------------------ _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user