Ir ao conteúdo
  • Cadastre-se

MOR_AL

Membro Pleno
  • Posts

    2.571
  • Cadastrado em

  • Última visita

Tudo que MOR_AL postou

  1. Hoje dediquei o tempo livre para o layout do Gerador com AD9850/Frequencímetro. Bom trabalho com o asm dentro do Bascom. Quando você disponibilizá-lo também o usarei como consulta. MOR_AL
  2. Pode perguntar à vontade ! Grato Paulo! Minha política é semelhante. Gosto de responder quando percebo que o interessado fez a sua parte. Procurou sanar a dúvida sozinho, mas não conseguiu. MOR_AL
  3. Mais dúvidas... @Paulo. Em tempo: Estou pedindo ao Paulo por ser ele que escreveu a apostila, mas caso alguém mais conheça as respostas às minhas perguntas, sintam-se a vontade para responder. Sobre o exercício da pg 46. Projeto 5, do Relógio. 1 - O prescaler é comum ao timer0 e timer1 certo? Ele é comum também ao timer2? Caso afirmativo, como há duas instruções com valores diferentes de prescaler. Uma para o timer0 e outra para o timer2. Ambos os timers operam ao mesmo tempo, então um deles não estaria correto, certo? Procurei no datasheet mas não encontrei nenhuma referência de que o prescaler do timer2 fosse diferente do prescaler dos timers 0 e 1. 2 - Pelo que entendi, não é possível conter um cristal para os 8MHz e outro para 32.768Hz, pois os dois contariam com a mesma pinagem. Uma aplicação que envolva precisão de tempo seria prejudicada, pois a precisão do clock interno é, segundo o manual, de + ou - 10%. 3 - Segundo o manual, o clock interno (RC) de 8MHz pode ser calibrado para obter-se uma precisão de + ou - 1%. Não encontrei, no manual, como fazer esta calibração. Você saberia como fazê-la? 4 - Porquê o timer2 é usado como RTC? O que o diferencia dos outros, para ter esta função? Não bastaria o cristal de 32.768Hz e um timer qualquer, com um prescaler de 128? (128 x 256 = 32.768). 5 - Meu chip tinha sido ajustado como fonte a cristal de 16MHz. Nos seus exercícios anteriores, o clock era o interno de 8MHz. Neste último passou a ser um clock via cristal. Essa alteração é feita fora do Bascom, em tempo de gravação, alterando os fuses referentes ao clock? Apesar de ter estudado este exercício, não poderei fazê-lo. Não possuo o cristal de 32.768Hz. Sem problema. Fui ver e tenho duas outras frequências 3.579.545Hz e 3.575,61kHz. Você sabe a utilidade destas frequências? É sempre assim. Quanto mais se estuda, mais dúvidas aparecem. Grato pelas respostas. MOR_AL
  4. @ Paulo. Costumo agrupar algumas instruções por dois motivos: 1 - Poucas linhas, ou apenas uma, contém toda a ideia daquela parte do projeto. Uso o editor até 120 caracteres, que dá para observar direito na tela do monitor. 2 - Costumo imprimir alguns projetos, pois eles serão úteis quando quiser relembrar alguns detalhes. Apesar do PC conter o projeto, a forma impressa permite trazê-lo para a mesa e observar diversas páginas ao mesmo tempo. No momento de imprimir, coloco com o tipo Arial, 10, ou 9. Ainda fica tranquilo de ler e concentra muitas instruções em apenas uma página. Com diversas páginas (2 ou 3) sobre a mesa, dá para ter uma boa noção geral. Quando fica muito difícil (carregado, confuso, etc.) imprimo em "landscape" mesmo. Além disso, se for para apenas tirar uma dúvida, não tenho que passar pelo boot do PC. Costumo também escrever algumas notas no documento. @ Soschip. (Sobre o help do Bascom). Eu estou percebendo isso também, salvo a apostila do nosso amigo Paulo, hehe! (Sobre o seu comentário) Com a sua inteligência será bem fácil... Eu reescreveria, mais apropriadamente assim: Com a minha teimosia será trabalhoso, mas colherei os frutos... MOR_AL
  5. Pessoal! Tenho duas retificações a fazer: 1 - Descobri como usar a simulação no Bascom. Depois que a gente acerta pequeno detalhe, fica fácil. Só tinha faltado colocar o arquivo executável do Bascom (bascavr.exe) no local certo (Menu > Opções > Simulador > Aba Simulador > Program) e Ok. 2 - Encontrei um arquivo pdf dentro do sítio do Bascom. Na seção de downloads. http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54 É o único pdf para baixar. BASCOM-AVR Manual. Está mais completo e já tirei diversas dúvidas lá. Terminei de fazer o exercício da pg 40. O voltímetro. Como já comecei a entender um pouco, procurei fazer de modo diferente para aproveitar o sketch que eu tinha feito. Incluí alguns floreios, como apagar os zeros à esquerda. Com isso aprendi, com o auxílio do manual indicado acima, como incluir diversas condições relacionais dentro de um único IF. Ex.: If Milhar = 0 And Centena = 0 And Dezena = 0 Then : Mostrador = Mostrador And &B00001111 : End If Estava querendo saber como fazer isso e não conseguia, mas sabia que era possível.... Isso é bom, porque você começa a usar os próprios neurônios, hehe! MOR_AL
  6. Valeu, Paulo. Apesar de sua apostila ser muito boa, sinto falta de bons tutoriais sobre o Bascom. Não consegui usar a simulação via Bascom e nem encontrei algum tutorial sobre o assunto. Você conheceria algum tutorial sobre a simulação? MOR_AL
  7. @ Olá Soschip. Tenho já conhecimento de pilha, stack etc. Costumo usar muito o PIC em assembly. Normalmente meus projetos em assembly consomem cerca de 25% do semelhante na linguagem C. Em termos de memória então, costumo usar cerca de 10%. Estou ciente das instruções Push e Pop da época que saiu o 8051. Minhas dúvidas são: 1 - Porque salvou especificamente o registro r23? Descobri!!! When the AVR has extended IO-space (for example ATMega48, 88 or 168, see datasheet at the end: Registersummary), the compiler uses R23 for a number of operations. So Push and Pop R23 as well when using the NOSAVE-option when using these AVR's with extended IO-space. 2 - Se não foi usada a instrução on int0 sub_int0 NOSAVE, porque teve que salvar r23 se este registro não foi usado? 3 - Procurei no Bascom e encontrei a instrução PUSHALL, que seria mais apropriada, uma vez que, segundo o help do Bascom, não há como saber quais registros estão sendo usados pelo Bascom. PUSHALL salva quase todos os registros, mas gerou mais uma dúvida. 4 - Porque o Bascom só salva os seguintes registros: R0 a R5, R7, R10, R11 e R16 a R31? Porque ele não salva R6, R8, R9 e R12 a R15? Seriam deixados exclusivamente para o programador usar o assembly? Pois é, quanto mais se estuda, mais dúvidas aparecem. Grato pelas informações. Decidi comprar o Bascom porque estava entrando em loop sobre qual linguagem estudar. C da CCS para PICs, Basic da Mikroelektronika para PICs, C da Visual Studio para AVR, Basic da Bascom, para AVR? Estava estudando todas elas e vi que ia ficar maluco. Acabei decidindo pelo Bascom. Meus projetos já estavam usando ponto flutuante em asm. É um medidor de indutância e capacitância. O tempo que ele está levando se tornou proibitivo, mas agora vou tentar terminá-lo. O tamanho da memória dos meus projetos (em asm) estavam chegando próximo de 2kB, que é o meu limite para projetos em asm. Decidi então que só usaria asm quando fosse imprescindível, como é o caso de um frequencímetro e de um gerador de funções, que possui um frequencímetro. Mas tudo isso usando o PIC. Agora não vou fazer nenhum projeto com asm em AVRs. MOR_AL
  8. MOR_AL

    Fonte Chaveada

    Coloca a referência desta fonte. O link... MOR_AL
  9. @paulo! ... E aí, tudo bem? Seguindo sua apostila, fiz o exercício do "Projeto 3", na página 37. Como já começo a entender alguma coisa, resolvi alterá-lo para as condições apropriadas daqui. Possuo um sketch que tinha feito. Ele usa o CI CD4511, que é um conversor BCD para 7 segmentos e tem apenas três mostradores de 7 segmentos. Minhas alterações: 1 - O contador foi alterado para eliminar as operações algébricas. Incrementava o dígito das unidades. Quando seu valor alcançasse 10, zerava as unidades e incrementava as dezenas. O mesmo ocorre entre as dezenas e as centenas. 2 - Como só precisava de 7 pinos de saída, coloquei tudo na porta D. Bits de zero a 3 correspondem ao valor do digito (unidade, dezena ou centena). Bits de 4 a 7 correspondem à seleção do dígito que vai ficar "aceso". Isso necessitou de um pequeno malabarismo booleano, o que foi bom pegar as manhas do Bascom. A operação de escrita passou a ser PORTD = Mostrador. 3 - Incluí o apagamento dos dígitos que possuem zero à esquerda, com exceção do dígito das unidades. 4 - Usei o Atmega8A, que possuo. Pena que o Bascom não aceita a instrução If seguinte. Tem que separar em mais de uma instrução: If (dezena AND &B00011101) = 0 Then dezena = 1 endif Segue o link do programa. http://www.4shared.com/file/tyH61JC1ba/Exemplo_pg37.html Tenho uma dúvida no seu programa, que você não comentou. Para que servem as instruções PUSH r23 e POP r23 que você incluiu na rotina da interrupção do TIMER0? Até li algo a respeito no manual, mas não consegui entender. Sua apostila está sendo muito útil. Pescar... descansar. Vale o lazer. MOR_AL
  10. Eu, antes de comprar e usar o tal livro do Supervisório..., comprei estas duas vídeo aulas do Treinamentos TI. Com elas pude entender o que o livro fazia. http://www.treinamentosti.com.br/CursoCSWA1.aspx http://www.treinamentosti.com.br/CursoCSWA2.aspx Para quem está iniciando e mesmo para quem já conhece alguma coisa. MOR_AL
  11. Concordo com relação em identificar duas ou mais teclas. Com relação ao tempo de uso, pode-se alterar tanto o período deltaT como o valor máximo da variável n, para se adequar ao tipo de tecla. Eu supus e trabalhei com deltaT = 30ms e n máximo = 5 para as teclas que eu usei. MOR_AL
  12. @chacalgbi Vou te dizer que serial via C# não é simples. Tentei pesquisar na net e cada um fazia de modo diferente. Acabei encontrando um livro, até que barato em relação ao normal, que trata desse assunto. O autor se propõe a monitorar uma tensão analógica, que entra no CAD de um uC (PIC16F877A). Essa tensão é enviada ao PC via porta serial e depois via USB. Os valores monitorados são transferidos para um arquivo, para um gauge e para um gráfico. Eu comprei o livro e não me arrependi. O autor possui uma didática excelente, que faz você entender passo-a-passo todo o procedimento. Procure por "Criação de Sistemas Supervisórios em Visual C# 2010 Express" do autor Carlos Eduardo Sandrini Luz. Só pelo tempo que fiquei pesquisando na net e pelas dúvidas e incertezas não resolvidas, vale o investimento. http://www.buscape.com.br/prod_unico?idu=1853650408&ordem=prec#precos MOR_AL
  13. Ops! Vou deixar como está. Quando descobrir o local certo eu transfiro para lá! Valeu pela lembrança. Valeu pessoal! Abri um tópico que indica o porquê é mais interessante fazer aproximações de uma função não linear (que não possuem precisaão se forem tratadas com ganho fixo em toda a sua faixa) com semi retas, distribuídas em trechos desta função. Isso é válido quando o uC possui limitações de memória de programa, velocidade de processamento, ou uC de 8 bits. Na verdade é um papo em quadrinhos entre o programador e um uC com essas limitações mencionadas. No caso o uC mostrado foi um PIC de 8 bits e 2K de flash, mas a teoria é válida para outras famílias de 8 bits com as mesmas limitações. Também apresento um link para outro fórum, onde se discutiu bastante sobre o assunto. Trata sobre a leitura de temperatura por meio de um termopar, mas pode ser estendido para qualquer função não linear (com ganho fixo). MOR_AL
  14. Paulo! Já descobri isso no ProgISP. Não o usei porque ainda aguardo o USBasp, que no momento não me faz falta. Sei que poderia usar o control copy e control paste, mas a experiência mostrou que escrevendo o código há maior fixação. Claro que não farei assim para todos os exercícios. Apenas até achar que não vale mais a pena escrever todo o código. Hehe! Continuo lendo sua apostila e (para variar) parei numa dúvida. Na página 22 do documento PDF tem a seção SERIAL PROGRAM DOWNLOADING. Lá consta que devemos deixar os FUSES correspondentes ATIVADOS, como segue: SERIAL PROGRAM DOWNLOADING Esta opção, quando selecionada, permite que o microprocessador possa ser programado por programadores ICSP , ou não. Tome muito cuidado, pois se acidentalmente você gravar os FUSEs sem esta opção selecionada, não será mais possível fazer nenhuma gravação !!!!!! Neste tutorial, tem de ser deixada ATIVADA, ou vai perder o seu processador ! No datasheet (Table 28-2) consta que deve-se deixar os bits correspondentes em '1' (sem ativar) Com qualquer dos bits LB2 e LB1 em '0' (ativados) não se poderá mais gravar. Uma sugestão: Para as atualizações seguintes em sua apostila, seria interessante acrescentar o número da página no rodapé. Isso facilita a identificação da página. Nem sempre o número da página no arquivo PDF coincide com o número da página do documento. MOR_AL
  15. Não estou a par dessa versão online do fórum, por isso costumo fazê-la do modo que faço. Acho que a versão offline é mais interessante, por poder imprimir e estudar em qualquer local. Caso você tenha a prerrogativa de fazer isso (disponibilizar no fórum online), pode fazê-lo. Tem minha autorização. MOR_AL
  16. É isso aí! Agradeço a todos! MOR_AL
  17. Finalmente! Está quase lá! Escrevi o exercício "PISCA - PISCA DE VELOCIDADE DE 1 Hz" da apostila no Bascom e compilei. Depois de alguns tropeços com o gravador Serial (COM) e os aplicativos Ponyprog e o AVRDUDESS, consegui fazer os leds piscarem com os dois aplicativos. Agora só falta gravar a eeprom e os fuses. Este último vou estudar com muito cuidado. Hehehe! MOR_AL
  18. Respondi no outro tópico. O bootloader do Bascom só altera a flash. The Bootloading feature in some of the latest AVR devices, gives you the possibilities of programming your AVR's flash thru a serial or USB connection without the need of programming dongles. MOR_AL
  19. Se eu fosse um fabricante de osciloscópio, ou de outro equipamento qualquer, colocaria um firmware compatível com a capacidade do hardware. Acho estranho venderem um equipamento onde o hardware pode responder até XMHz, mas o firmware limita essa frequência. A menos que o que conseguiram alterar no firmware, para alcançar esta frequência, tenha custado precisão. Obviamente que eu não partiria para esta empreitada. Vai que dê algum problema de gravação do novo firmware. Como garantir que você poderá retornar com o firmware original? MOR_AL
  20. Use um circuito monoestável, que enquanto houver o nível (da chave pressionada) ele mantém este nível em sua saída. Somente após o último pulso é que o período do monoestável inicia. Um período do monoestável em cerca de 200ms deve resolver o problema. MOR_AL
  21. Obrigado, Cesar! É um prazer. MOR_AL
  22. Fiz este tutorial para se calcular as tensões e correntes em circuitos eletrônicos. Na verdade ele deve ser estudado antes do tutorial sobre transistores para pequenos sinais. Segue o link. conceitos preliminares (1).pdf MOR_AL
  23. Pessoal! Fiz (e já usei com sucesso) uma rotina para identificar uma tecla pressionada. A rotina retira o bouncing. Parti deste pseudo código, então você pode escrever em qualquer linguagem. A rotina espera que o bouncing inicial termine, identifica o período estável e aguarda que ele termine, quando ocorre novo bouncing. É útil para quem estiver tendo problemas com bouncing. MOR_AL
  24. Ok Paulo! Já comecei a estudar seu tutorial há algum tempo, mas como estava em dúvida de qual linguagem usar, fiquei protelando ... Agora não tem mais volta (eu acho, hehe). Vamos de Basic. Estou continuando a estudar o seu tutorial. Também comecei a baixar muita coisa referente ao Bascom e já tenho mais uma dúvida. Resolvi criar um tópico novo para não sobrecarregar este aqui com as minhas. Às vezes muito triviais. MOR_AL

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!