On 28.08.2016 10:48, Philipp Klaus Krause wrote:
> 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

P.S.: I have verified that the OSCICN, CLKSEL and CKCON reset values are
as in the datasheet. Initializing these registers explicitly to their
reset value does not change anything.


------------------------------------------------------------------------------
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to