language EasyHDL
SERIAL DATA GENERATOR
-что тут поменять надо, чтобы выдавал только байт 01010101
Спойлер
Код: Выделить всё
// SERIAL DATA GENERATOR
// Define data to be output
DATA "Hello World ", 250m
DATA "- EASYHDL Test Program\r", 500m
DATA REPEAT
// Define the baud rate
FLOAT BAUD=9600
FLOAT BITTIME=1.0/BAUD
// Declare working variables
STRING s
INT i,j,d
TIME td
// Top level
OUT = 1
SLEEP FOR 5m
LOOP:
READ s,td
GOSUB OUTSTRING
SLEEP FOR td
GOTO LOOP
// Output an ASCIIZ string in S
OUTSTRING:
FOR i=1 TO LEN(s)
d = ASC(SUBSTR(s,i))
GOSUB OUTCHAR
NEXT I
RETURN
// Bit Bang a single character
// 1 Start bit, 1 Stop bit and no
// parity are assumed.
OUTCHAR:
// Start bit
OUT = 0
SLEEP FOR BITTIME
// Data bits
FOR j=0 TO 7
OUT = d & (1 << j)
SLEEP FOR BITTIME
NEXT j
// Stop bit
OUT = 1
SLEEP FOR BITTIME
RETURN
