Playmobil - Clube do Hardware
Data de Nascimento 10/09/1984 (36 anos)
Tutorial de programação Basic para AVR's
Playmobil respondeu ao tópico de aphawk em Programação de microcontroladores
a ta beleza não intão postal algo com int serial por favor intao pra eu entender. obrigado
12.569 visualizações
tem como você postar um codigo com um exemplo dela funcionando? se não me engano ela é chamada de twi
Bom paulo é +- isso, porém tem o detalhe de ele estar operando em modo ADCnoise, com isso a comunicação pela serial fica desabilitada ( ja testei e fica mesmo), pelo o que o datasheet do atmega8 fala so fica habilidata a interrupção pera serial e é isso que eu queria fazer usar a interrupção para para ele mas, como funciona essa interrupção, o que eu tenho que manda na serial para ativar a interrupçãoe e ele parar de fazer a conversão. até mais
é a seguinte .. o mc ta la fazendo a conversao a/d em modo power ADCnoise... que deixa a eepron o a/d e as interrupcoes ligadas pelo q eu entendi.. quero implementa uma interrupção pela serial para ele parar de realizar a conversao e reinicializar o sistema, porque atulamente eu to ligando e desligando ele na hora q eu quero para a conversao. Uma boa parte disso ja está implementada.. já coloquei o mc pra "conversa" com um software q eu fiz no pc, eu mando um dado e ela começa a conversao, com um intervalo de tempo q eu escolho pelo software. o problema ta ai .. eu quero para a conve
nossa, pra você ver o quanto atordoado eu to eu nem tinha reparado nisso, mas se tudo der certo depois eu repasso o programa aqui, se alguem achar útil. Outra dúvida alguem sabe com implementar uma interrupção pera serial, quando ele tiver gravando na eeprom se vier uma interrupção pela serial ele para de faze a conversão a/d.
Paulo, da uma mão aqui .. bom estou gravando na eeprom, e depois quero ler bom segui o que você me falou outra hora e estou fazendo assim logico depois de declarar tudo para gravar agora para ler to fazendo algo de errado? porque para escrever ta ok agora pra ler ele ta caindo num loop infinito da um help ai
ok consegui ler e escreve na memoria sem problemas mas agora estou com um informação de erro fora das linha de código do programa. Uploaded with ImageShack.us sendo que eu não uso essas labels em nenhum lugar tentei degubar isso mas não consegui descobrir de onde está vindo. e mais uma vez obrigado Paulo, Já achei de onde vinha o erro. valeu
Paulo, então na verdade estou planejando usar toda a eeprom, pra armazenar os dados, digo irei deixar o mC rodando e certa hora vou la e pego esses dados. Eu dei uma olhada no help mas em todos os exemplos que eu vi ele ja da o tamanho e já coloca previamente os dados na eeprom. Eu quero deixar isso em aberto, pode ser que use toda a eeprom, pode ser que use quase toda, não se consegui te passar corretamente o que quero fazer. Resumidamente a quantidade de dados que será armazenada é aleatória. Bom quanto a variável C é so um contador. Até mais, Rodrigo
Grande Paulo, deu certo hehe, agora ta funcionandno to recebendo e mandado dados para o mC, agora veio outra dúvida. Estou tentao armazenar dados na eeprom e depois ler esses dados mas infelizmente o conteudo que o mC esta me mostrando não condiz com o que foi gravado na eeprom, mais uma vez por favor da uma olhada no código: Mais uma vez obrigado
Paulo, Quanto a definir os pinos o proprio bascom no seu exemplo não usa, e também quando eu defini a COM eu tb ja define quem é output e quem é input, até porque se você não usar os pinos padrão RX TX do mC você tem q definir input e output. Quanto ao crystal, o atmega8 vai ate 16Mhz, se não me engano o atemga8L vai ate 8Mhz. Mas irei dar uma olhada agora de manhã e ja repasso o que eu consegui. Mais uma vez obrigado Paulo, Fiz as alterações que você sugeriu, e mesmo assim recebo sempre o mesmo caractere não importa o que eu coloque no adc sempre recebo no pc a mesma coisa, eu simceram
Grande paulo, venho mais uma vez com mais um problema... Estou tentando fazer a comunicação de um dispositivo com o pc pela serial... porém, não sei porque cargas d'agua, não esta funcionando ja fucei em tudo que é canto e nada, abaixo mando o codigo do que estou fazendo, é coisa simples so pra testar a comunicação, mas mesmo assim nao vai, ja comsegui receber mandando do mC a 9600 e recebendo a 1200. Desde já obrigado $regfile = "m8def.dat" $crystal = 10000000 $hwstack = 32 $swstack = 10 $framesize = 40 $baud = 4800 Dim O As Byte Config Adc = Single , Prescaler = Auto Open "comb
Opa , valeu paulo to de volta pra da o feedback, bom funcionou o que você me falou, porém agora não irei mais implementar o processamento no uC, vou deixar isso pro pc faze. Mas agora tenho outra dúvida, tava dando uma olhada nos modos SLEEP, e achei um interessante já que estou usando o adc e quero minimizar o consumo de energia, você saberia me dizer se durante o modo sleep "ADC Noise Reduction Mode", ele consergue gravar na eepron sem sair do modo?
Então Paulo essa função que eu usei w=getadc com w sendo byte, funcionou perfeitamente, coloquei na entrada o valor max do adc e ocorreu tudo como eu queria, gravei no uc e coloquei pra roda deu tudo certo, não houve erro de nenhum tipo. mas bom vou fazer o que voce me falou trabalha w como long pra evitar erros. valeu
Sim isso mesmo se voce declara x como integer e c como byte e atribui x a c ele automaticamente faz a conversão retirando os menos significativos, uso isso isso no adc declarei w como byte e fiz w=getadc. o adc é de 10 bits mas ele automaticamente joga pra 8 bits. facilita e muito isso.
uhnn infelizmente so poderei realizar o teste segunda feira no laboratorio, mas ja adiantando algumas coisa, eu ja tinha feito isso, apenas uma operação por linha porém ainda continuavca com o erro mas eu tinha declarado como double e não me lembro agora se declarei todas como double, mas segunda assim q fazer o teste eu posto aqui os resultados. valeu Paulo brigadão.