[code]#include <p10f200.inc>
__CONFIG _WDTE_OFF & _CP_OFF & _MCLRE_ON
tmp1 EQU 10h
tmp2 EQU 11h
org 0x00
movlw 0FFh
movwf GPIO
movlw 00h
tris 6
main movlw 0A5h
movwf tmp1
movlw 08h
movwf tmp2
bcf GPIO,1 ;Start bit
call TransmitByte
bsf GPIO,1 ;Stop bit
goto main
TransmitByte:
sr rlf tmp1,f ;shift tmp1 to the left (affects carry bit)
btfss STATUS,C ;check carry
bcf GPIO,1 ;turn pin to '0' if carry = '0'
btfsc STATUS,C
bsf GPIO,1 ;turn pin to '1' if carry = '1'
decfsz tmp2 ;decrement loop variable
goto sr
retlw 0
END[/code]
This code above looks like this:PIC10F200 - Software UART
I would like to write a software transmitter UART for the PIC10F200, the only problem is: It doesn't have a timer overflow interrupt. I don't know how i could manage that every pin toggle takes exactly the same time. My current approach looks like this:
https://picload.org/image...pdr/uart_pic10f200.png