Hallo

Tja, so langsam gehen mir die Ideen aus. Du könntest bei Display on (sollte doch besser drin bleiben) ein 0x0f übergeben, dann müßte der Cursor irgendwo sichtbar sein und blinken.

Was ich noch nicht nachvollziehen kann ist das Timeing mit den Verzögerungen. Vielleicht nochmal prüfen ob wirklich die erwartete Zeit gewartet wird. Wird bei Delay10TCYx() wirklich ein 16-bit-Wert erwartet (z.B. 40*200)? Im Zweifel eine kleine Blinksteuerung im Sekundentakt programmieren und mit Stoppuhr überprüfen:

Code:
void blink(void)
{
	unsigned char temp;
	while(1)
	{
	   led_an;
	   for(temp=0; temp<50; temp++) delay100us(200); // 50*20ms=1sek
	   led_aus;
	   for(temp=0; temp<50; temp++) delay100us(200); // 50*20ms=1sek
	}
}
(ungetestet)

Gruß

mic