• Welcome to LusoRobótica - Robótica em Português.
 

atmega88 USART

Started by tiagosilva510, 26 de May de 2011, 11:32

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Njay

O teste de eco já funciona?

tiagosilva510

dsclpem a demora, o problema estava mesmo no conversor :), era do ebay :P ja comprei um bom

tiagosilva510

boa noite, agora precisava de uma ajuda.. agora pra por o pc a enviar o bit 1 e o 0 para o atmega...

ja implementei um programa em C capaz de ler a porta serie.. no entanto agora usando o comando write nao tou a conseguir

write(fd,1,1) em que o parametro do meio e o q será enviado. mas coloquei um led para ver se existia algum impulso no cabo rs232 mas n obtive nada.. alguem tem o codigo para receção de um bit no atmega?


xiserre

Quote from: tiagosilva510 on 16 de July de 2011, 21:13
boa noite, agora precisava de uma ajuda.. agora pra por o pc a enviar o bit 1 e o 0 para o atmega...

ja implementei um programa em C capaz de ler a porta serie.. no entanto agora usando o comando write nao tou a conseguir

write(fd,1,1) em que o parametro do meio e o q será enviado. mas coloquei um led para ver se existia algum impulso no cabo rs232 mas n obtive nada.. alguem tem o codigo para receção de um bit no atmega?

tu nao podes enviar um bit.. tens de enviar 8.. e assim que tens configurada a USART.. Fazes uma mascara, e escreves no UDR.. Tao simples quanto isso..

tiagosilva510

sim eu sei.. mas tipo.. no programa em C?

eu qero enviar pelo programa em C e receber no atmega.. tens algum site que explique isso?

xiserre

Quote from: tiagosilva510 on 17 de July de 2011, 11:36
sim eu sei.. mas tipo.. no programa em C?

eu qero enviar pelo programa em C e receber no atmega.. tens algum site que explique isso?
queres enviar do pc para o atmega?
Tens experiencia de programaçao?

tiagosilva510

nao tenho muita.. eu tou a usar ,linux, como fiz no codigo para ler a porta serie do pc com um read, penso que enviar pela porta serie seja algo do genero dum write mas n estou a conseguir...

pretendo enviar do pc pro atmega


Njay

#83
Se tás a usar Linux é muito fácil fazer uma aplicação em TCL. Lanças a TCL shell (tclsh) e podes experimentar os comandos. Também podes enfiar tudo num ficheiro e executá-lo dado o nome do ficheiro como argumento à tclsh, tipo "tclsh script.tcl". Como o TCL é interpretado não é preciso compilar, e é uma linguagem de muito alto nível pelo que dá para fazer cenas bué complexas em meia dúzia de linhas. O man tem todo o help necessário sobre os comandos TCL.
Escrevi o código abaixo assim meio de cabeça por isso pode ter algum erro.

# Abrir porta série para leitura e escrita
set sd  [open "/dev/..." r+]  ;# (colocar o nome correcto da porta série)
# Configurar a porta série para (9600bps, sem paridade, 8 bits de dados, 1 stop bit)
fconfigure $sd -translation cr -buffering none -mode 9600,none,8,1
# Enviar uma string (terminada com \n) para o ATmega (o comando "puts" acrescenta sempre um \n no final)
puts $sd "oi!"
# Espera e recebe 1 string do ATmega (o ATmega tem que terminar os dados com um \n)
set str  [gets $sd]
# Imprimir no ecran a linha recebida
puts "Recebi do ATmega: $str"
# Fechar a porta série
close $sd