/* ================== S E R I A L out ===24nov2009===================== Använder kod från www.elektronikutveckling.com, radera inte denna info om du modifierar eller kopierar delar från denna fil. Använd på egen risk, rätta felaktigheter. */ void baudChar( char ch ) // 1200 .. 19200 baud baserad på TMR0 { // fungerar med och utan kodoptimering char bitCount, ti; PORTA.0 = 0; // startbit PSA=0; // TMR0 används som timer. T0CS=0; // Intern Fosc/4 används som klocka för TMR0 for ( bitCount = 10; bitCount > 0 ; bitCount-- ) { TMR0=0; // Reset'ar TMR0 register och prescaler. PS2=0; // PS<2:0>=0.0.1 sätter prescalern till 1:2 PS1=0; // dvs TMR0 register LSB blir 2us PS0=1; // while(TMR0<19); // ska ge en delay på ungefär 1/baud [us] /* inställningar för CC5X Version 3.3A och 3.4B (gratisversion) while(TMR0<7); // ger 19200 baud while(TMR0<19); // ger 9600 baud while(TMR0<45); // ger 4800 baud while(TMR0<95); // ger 2400 baud while(TMR0<210); // ger 1200 baud inställningar för CC5X Version 3.1F med eller utan optimering while(TMR0<8); // ger 19200 baud while(TMR0<21); // ger 9600 baud while(TMR0<47); // ger 4800 baud while(TMR0<97); // ger 2400 baud while(TMR0<212); // ger 1200 baud */ Carry = 1; // stopbit ch = rr( ch ); PORTA.0 = Carry; } return; }