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

Reply via email to