Hi, I'm just curios on how this work. Is this a general C/C++ process or C51?
In main.h, I have a:
#define MAX_TIME_OUT 3000 //This is beyond U8
In Worker.c, I have Timer 2 ISR:
#include "main.h" U8 _temp_cntr; //unsigned char and not initialized //T2 init here void T2_ISR() interrupt using 0 { //some flag being set here _temp_cntr++; //Should this be back to 0 when reach 255? if(_temp_cntr == MAX_TIME_OUT) //What will happen here? { _temp_cntr = 0; } }
Hope somebody can enlighten me on this. My UART1 on F387 mcu won't able to run when Timer 2 ISR is enabled because of the specific condition under the ISR.
thanks gp
Never assume - always specifically check the documentation:
http://www.keil.com/product/isoansi.asp
http://www.keil.com/support/man/docs/c51/c51_xa.htm
"The C51 and the Microsoft C compiler accepted the comparison during compile time..."
There is nothing wrong with the syntax - so you will, obviously, get no syntax errors from the compilers!
"...but some code is affected during runtime"
The code will operate as defined by the 'C' language standard - so you need a proper understanding of the 'C' language in order to have a valid expectation of what the code will do!
Again, a 'C' textbook will explain the standard processes that are used for conversions between different data types; eg, publications.gbdirect.co.uk/.../expressions_and_arithmetic.html