(mikroBasic 3.0 Demoversion for AT90S8515)
Code: Select all
program Hello
main:
USART1_Init(9600)
USART1_Write_Text("Hello World")
end.
E-3 'USART1_Init' was not declared
Code: Select all
program Hello
main:
USART1_Init(9600)
USART1_Write_Text("Hello World")
end.
Code: Select all
//
// *** **** **** ******** v3.00
// ******* **** **** *********
// *** *** **** **** *** ****
// ********* **** **** *********
// ********* ******* *********
// *** *** ***** *** ***
// *** *** *** *** ***
//
unit USART1;
uses uart_consts;
implementation
procedure Usart1_Init(baud_rate : longint);
var tmp: longint;
begin
tmp := Clock_kHz_ * 1000;
tmp := tmp div baud_rate;
tmp := tmp shr 4;
dec(tmp);
UBRRL := lo(tmp);
UBRRH := hi(tmp);
UCSRB := $18;
UCSRC := $86;
end;
procedure Usart1_Init_Advanced(bps: longint; parity, data_bits, stop_bits: byte);
var loc : byte;
begin
Usart1_Init(bps);
loc := $80 or parity or stop_bits;
UCSRC := loc or (data_bits and $0F);
UCSRB := UCSRB or (data_bits and $F0);
end;
procedure Usart1_Write_Char(data: byte);
begin
while (UCSRA and $20)=0 do nop;
UDR:=data;
end;
function Usart1_Data_Ready : byte;
begin
result:= UCSRA and $80;
if result<>0 then result:=255;
end;
function Usart1_Read : byte;
begin
result:=UDR;
end;
procedure Usart1_Write_Text(var uart_text: string[20]);
var i, data: byte;
begin
i := 0;
data := uart_text[0];
while data <> 0 do
begin
Usart1_Write_Char(data);
inc(i);
data := uart_text[i];
end;
end;
end.
Code: Select all
include "usart1A"
Code: Select all
module usart1A
include "uart_consts.abas"
implements
sub procedure Usart1_Init(dim baud_rate as longint)
dim tmp as longint
tmp = Clock_kHz_ * 1000
tmp = tmp div baud_rate
tmp = tmp >> 4
dec(tmp)
UBRR0L = tmp
UBRR0H = longint(tmp >> 8)
UCSR0B = $18
UCSR0C = $86
end sub
sub procedure Usart1_Init_Advanced(dim bps as longint, dim parity, data_bits, stop_bits as byte)
dim loc_ as byte
Usart1_Init(bps)
loc_ = $80 or parity or stop_bits
UCSR0C = loc_ or (data_bits and $0F)
UCSR0B = UCSR0B or (data_bits and $F0)
end sub
sub procedure Usart1_Write_Char(dim data as byte)
while (UCSR0A and $20)=0
nop
wend
UDR0=data
end sub
sub function Usart1_Data_Ready as byte
result= UCSR0A and $80
if result<>0 then
result=255
end if
end sub
sub function Usart1_Read as byte
result=UDR0
end sub
sub procedure Usart1_Write_Text(dim byref uart_text as string[20])
dim i, data as byte
i = 0
data = uart_text[0]
while data <> 0
Usart1_Write_Char(data)
inc(i)
data = uart_text[i]
wend
end sub
end.