Oto program ktory nie dziala: (ponizej bedzie program ktory dziala)
#include <REG8252.H>
#include <stdio.h>
void rs(char c) { while(!TI); TI=0; SBUF = c; }
void pisznars (char *znak) { while( *znak ) { rs(*znak); znak++; } }
void main(void) { int x = 10000; while(1) // loop { while(x > 1) // 10000 { P1 = 0x0f; // PORT1 to 00001111 x--; // dec. x } while(x < 10000) // 10000 { P1 = 0x00; // PORT1 to 00000000 x++; // inc. x } TMOD=0x20; TH1=0xFD; SCON=0x50; TR1=1; SBUF = "O"; TI=0; pisznars("Ka"); } }
---------------------------------------------- Ten dziala:
#include <REG8252.H>
#include <stdio.h>
void main(void) { int x = 10000; while(1) // loop { while(x > 1) // 10000 { P1 = 0x0f; // PORT1 to 00001111 x--; // dec. x } while(x < 10000) // 10000 { P1 = 0x00; // PORT1 to 00000000 x++; // inc. x } TMOD=0x20; TH1=0xFD; SCON=0x50; TR1=1; SBUF = "O"; TI=0; } }
Miga diodami i wyswietla znak na RS ktory rzeczywiscie sie pokazuje. Gdy laduje pierwszy program dioda nawet nie mrugnie, gdy laduje drugi migaja i pisze. Co sie do diabla dzieje ?
Pozdrawiam, Mariusz