On Sat, 2013-06-08 at 17:15 +0800, JIA Pei wrote:
> #include <reg51.h>
Did you read the replies on your previous post ?
You did not respond to them (yet).
Hint : sdcc must be giving you a warning about
NOT using reg51.h
> void int0() interrupt 1
> { TH0=0xd8;
> TL0=0xef;
> n--;
> }
The proper setup of the interrupt routine with a current
sdcc version is like the following :
void Timer0_ISR(void) __interrupt tf0_vector
{
....;
}
tf0_vector can be replaced with a number if you like as it
already is a number set with #define in the processor type
header file.
> void delay (unsigned char m)
> {
> unsigned i=3*m;
This variable is unsigned type what ?
I am assuming integer due to the three times multiplication
of a char (max value 255 * 3).
> void delayms(unsigned char a)
> {
> while(--a);
> }
If you want strict timing, like a millisecond delay, use
a hardware timer.
> play:
> while(1)
> {
> a: p=music_tab[i];
> if(p==0x00) { i=0, delayms(1000); goto play;}
A "goto", seriously ?
Still no mention of the sdcc version.......
And no specific errors noted that sdcc gave.
roelof
ps: advise : please clean up your code writing skills. It
looks like s**t.
------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user