Ir ao conteúdo
  • Cadastre-se

Projetos com Avr : Design, Programação em Basic e Assembly


Ir à solução Resolvido por aphawk,

Posts recomendados

@MOR,

 

O problema foi instalar EM CIMA da versão com patch que você tinha aí.

 

Mas é tranquilo, não tem nenhum problema, eu estou acostumado com esses problemas aqui !

 

1 - Desistale tudo

2 - Apague o diretório do MCS

3 - reinicie o micro

4 - Verifique se você tem os arquivos da licença ainda com você, em separado.

5 - Entre no site do Bascom, e entre aqui com os dados do seu login :

 

http://register.mcselec.com/login.php

 

Lá dentro tem a versão FULL para voce fazer o download, bem como também tem o arquivo de licença para voce baixar !

 

Instale a versão Full, e em seguida copie a licença para ela. Depois peça para fazer uma atualização, e pronto !

 

Paulo

Link para o comentário
Compartilhar em outros sites

Olá Paulo!

O pessoal da Bascom me deu as explicações e consegui abrir o aplicativo.

Eu me registrei no fórum.

Ao tentar entrar pelo endereço que você informou, meu username ou senha não servem. Pelo menos é o que é informado.

Ao clicar em "esqueceu sua senha", informo meu email para retorno. O sítio informa que não sou membro. (?)

Será que há duas formas de entrar no Bascom? Uma como forista e outra como membro?

Entendi que somente quem adquiriu algum produto é que pode se cadastrar como membro.

Vou tentar me cadastrar como membro. Depois posto o resultado.

Tentei.

Me foi solicitado o número do meu registro.

Digitei, mas me foi informado que não era registrado. Aí entrei na única outra opção que havia. Ao tentar me registrar, eu fora informado que meu registro ocorreu às 22h12m06s de hoje. Claro que isso deve ser no fuso de lá. Hehe!

Mas em algum outro local, meu status consta como válido.

... Recebi um email confirmando o registro. Legal.

O que são os arquivos LIC que eles mencionam?

Isso permite atualizações de novas versões?

 

MOR_AL

Link para o comentário
Compartilhar em outros sites

@MOR,

Em primeiro lugar, meus parabéns pela decisão de compra. É um produto fantástico que logo vai te levar a projetos que antes você mesmo acharia impossíveis de serem feitos !

Agora vamos ao que interessa :

O arquivo .lic é justamente como se fosse uma licença para a atualização do software. voce deve baixar a ultima do sistema, creio que é a 2.0.7.7 , e fazer o update, para atualizar os módulos.

Repare que existem alguns produtos adicionais também, como a biblioteca para criar dispositivos Slave I2c, que permitem voce criar um produto que converse como Slave com um dispositivo Mestre. Assim, voce pode criar um novo produto, que irá conversar com qualquer outro microcontrolador. Esta biblioteca não é gratuíta, mas o custo é bem baixo. Eu também comprei ela só para ficar inventando coisas hehehhe !

As atualizações do Bascom são gratuítas, basta fazer o download do arquivo .lic e depois rodar o programa , e selecionando o Update.

Não espere muita "coerencia" no site.

O mais interessante é voce se cadastrar e usar os Fóruns, tem muita informação e muitos projetos inteiros que são compartilhados.

Nas duvidas sobre o código, procure exemplos nos programas do meu tutorial e daqui do CDH também , ok ?

Boa diversão !!!

Paulo

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

@MOR,

 

Tranquilo !

 

Existe o Bootloader do próprio Bascom, assim voce envia via serial o seu programa.

 

http://www.mcselec.com/index.php?option=com_content&task=view&id=159&Itemid=57

 

Veja as App Notes que tem no site da MCS, tem muita informação muito boa !

 

Pode ir de Basic, logo eu faço uma atualização sobre como incluir Assembler aonde a performance seja extremamente necessária !

 

Paulo

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

@MOR,

 

Eu coloquei os programas fontes também junto com a  apostila, pode carregar direto de lá !

 

Hehehe agora sim, é legal quando a gente vê os resultados, não é ?

 

Vai mandando bala, os fuses são mesmo um saco.... existem alguns sites que voce configura os fuses on-line e eles já te retornam os dois ou três bytes para voce digitar direto no lugar adequado no programa do USBASP, é é uma boa, porque o ProgISP tem umas partes em chinês nisso dos fuses..... 

 

Boa diversão hehehe.

 

Paulo

Link para o comentário
Compartilhar em outros sites

Paulo!

Já descobri isso no ProgISP. Não o usei porque ainda aguardo o USBasp, que no momento não me faz falta. B)

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. :confused:

 

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.

 

imagem_crop_zpsd5236f47.jpg

 

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

 

Link para o comentário
Compartilhar em outros sites

@MOR,

 

Oi meu amigo, desculpe a demora, estava pescando pois esta foi provavelmente a última semana antes de esfriar muito e os peixes ficarem preguiçosos !!!

 

Vamos lá :

 

Sobre o Fuse Serial Program Download :  Este fuse permite fazer o acesso via ICSP ao chip. Se estiver desligado, só será possível regravar o chip com um gravador do tipo Hi-Voltage programmer, que custa bem mais caro e é muito difícil de encontrar.

 

 

Quanto aos outros 2 fuses na tabela, temos de deixar eles sempre em nivel 1 em nossas experiências. Pois eles podem proteger o acesso a áreas específicas, impossibilitando a leitura dos dados. Claro que se for fazer algum produto , o ideal é proteger tudo, colocando 0 em todas as duas  opções, o que significa que não se pode mais alterar nada no chip, nem ler e nem gravar !

 

Vou repaginar o arquivo para incluir o numero de paginas no Word, boa sugestão....

 

Paulo

Link para o comentário
Compartilhar em outros sites

@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

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@MOR

PUSH r23 e POP r23 serve pra salvar e recuperar o respectivo registrador na pilha do micro.

Pilha é um espaço de memória alocada na RAM interna que funciona  tipo: ultimo que entra, primeiro que sai (LIFO Last IN, First Out) , como uma pilha de material mesmo.

Acontece que quando ocorre a interrupção, o micro pode estar usando este registrador para executar uma função, e dentro da interrupção o mesmo registro pode ser usado para outra. Sendo assim, se não salvar o valor dele, ao retornar da interrupção, o valor que estava sendo processado antes estará perdido.

Importante dizer que ao salvar vários, tem que ser como neste exemplo:

push r23

push r24

push r25

.

.

.

pop r25

pop r24

pop r23

Se fizer diferente, os valores serão trocados, mas isso pode ser úlil em certos casos.

O bascom salva e recupera automaticamente os seus registros. Se quiser uma rotina de interrupção mais rápida, pode optar por não salvar auto e salvar manualmente, isso é claro se souber os registros que devem ser salvos.

Para não salvar basta:

 

enable int0

enable interrupts

on int0 sub_int0 NOSAVE

.

.

sub_int0:

push Rx

push ry

.

.

pop ry

pop rx

return

--------------------

Antes o sr comentou que não estava conseguindo adquirir o bascom...

Bem, gostaria de deixar aqui uma dica pra quem não pode adquirir o bascom completo.

A maioria dos meus projetos com LEDs não precisaram de mais do que  4KBytes. 

Sendo assim, a versão DEMO do bascom serve perfeitamente para a maioria dos projetos daqueles que estão iniciando, mesmo porque acredito que seja experiências ou projetos simples.

Podem conferir alguns no meu canal do YouTube que está na assinatura abaixo.

 

@MOR

 

If (dezena AND &B00011101) = 0 Then

    dezena = 1

 

O C pode fazer isto numa unica linha, mas certamente usa várias instruções quando compilar.

No bascom pode ser:

temp = dezena and &b00011101 : if temp=0 then dezena = 1

Link para o comentário
Compartilhar em outros sites

@

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

Link para o comentário
Compartilhar em outros sites

@MOR,

Opa, que bom que o mestre SOSCHIP está afiado no Bascom !

Existem algumas coisas no Bascom que deveriam ser mais explicadas.... Como isso do Push R23 que voce já descobriu !

Na dúvida.... Salve ele !!!!

Na verdade, para uma rotina de interrupção cujo timing não seja crítico, se voce não usou o NOSAVE quando específicou a rotina, todos os registradores que o Bascom utiliza são salvos, exceto o R23. Porisso que é uma boa norma quando se usa um chip mais moderno usar esse comando logo na entrada da rotina.

Existe também o comando Pushall que salva todos os registradores no stack. Só que ainda não usei ele.....

O problema é saber quando usar o NOSAVE .... Eu nunca consegui fazer uma interrupção funcionar desse jeito, sempre corrompia o programa.

E quanto ao R23, também não é simples saber se ele foi usado ou não....

Mas com o tempo, e usando um disassembly, a gente vai descobrindo que não precisamos salvar tantos registradores, pois muitas vezes usamos apenas alguns deles. Isso permite fazer uma rotina de interrupção mais rápida, o que pode ser necessário algumas vezes.

Quanto ao fato de o Bascom não utilizar todos os registros, deve-se ao fato que no AVR alguns registradores possuem um uso mais especializado. E o compilador tenta padronizar o uso, para evitar salvar um monte de registradores desnecessários

E quanto a fazer algo em assembly, dá para integrar facilmente o assembly com o Bascom, apenas onde seja necessário. Logo vou postar um bom exemplo disso.

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@MOR,

 

Não conheço .... eu sou tão fã do Proteus que até comprei ele oficial..... vou dar uma procurada e ver o que acho por aí !

 

 

@vtrx,

 

Opa, que isso, de jeito nenhum !!!! A corôa é sua, Vtrx, por merecimento !!!

 

Vou apenas postar algumas maneiras de ganhar performance onde seja necessário, como no analizador que eu estou terminando. Aliás, a parte do ASM ficou pronta e está uma beleza. O baile que estou levando é com a GUI... mostrar em uma tela de 84 colunas as formas de onda, que podem ir desde 0,4 microsegundos de espaçamento até 131 milisegundos entre dois eventos, e isso se repetir 800 vezes, e poder navegar e mostrar tudo isso com a resolução que voce quiser, mostrando a temporização..... tá meio complicado, mesmo em Basic....

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

@MOR,

Hehhehe legal, esse arquivo .pdf é o mesmo que tem no Help do Bascom.

Recentemente eu postei um artigo sobre multiplex que tem uma versão desse voltímetro, sem usar nada além de bytes e words, e mostra com 3 casas após a vírgula.... O legal é fazer o que você está fazendo : incrementar o programa, refazer de uma outra maneira, assim voce fixa muito mais !

Eu não costumo usar essa maneira de colocar vários comandos depois de :. Prefiro escrever a linha de baixo... Mas é uma opção pessoal !

Paulo

Link para o comentário
Compartilhar em outros sites

@ 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

Link para o comentário
Compartilhar em outros sites

@vtrx,

 

Olha.... acho que voce vai aprovar as minhas misturas no Bascom :

 

Fiz uma rotina em assembler, que é chamada como sub-rotina pelo Bascom, e esta rotina  é interrompida por DUAS outras rotinas em Assembler, e tudo conversando com o Bascom, na boa, curioso de se ver... conseguí implementar um Timer de 23 bits , preciso o suficiente para capturar um sinal a 400 Khz, e mantendo toda a temporização exata !

 

Já tenho um buffer de 450 amostras, sendo que cada amostra ocupa 4 bytes :

 

BYTE 1 - lsb do TIMER

BYTE 2 - 8 bits do meio do TIMER

BYTE 3 - 7 bits MSB do TIMER

BYTE 4 - Amostra da entrada que gerou a interrupção por mudança de nível ( 4 bits )

 

Tentei no Arduíno, e a captura está de acordo com o ISIS. Pena que ele roda a 16 Mhz, e preciso que rode a 20 Mhz.

 

Agora, pensar direito na GUI do analisador, para aproveitar a temporização exata das amostras.

 

Paulo

Link para o comentário
Compartilhar em outros sites

@aphawk sempre dou uma 'olhada' em outros compiladores para ver se tem alguma rotina que pode ser melhor aproveitada e adaptada para outras linguagens,e sempre achei em foruns do BASCOM varias rotinas em ASM,inclusive ja me ajudou com inicialização de um PIC que não estava como eu queria,acho que o BASCOM é um dos compiladores que mais exploram isso.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

@MOR,

1 - Em quase todos os Avrs, cada Timer/counter possui o seu próprio Prescaler. E em cada família de chips, os valores de Prescalers disponíveis podem variar para cada um dos Timers..... ! Só mesmo conferindo no Datasheet.

2 - Na família Atmega 48/88/168/328 não é possível trabalharmos com dois cristais ao mesmo tempo.

Mas existem outras famílias, como o Atmega16 ou Atmega32, que permitem um cristal como clock principal e um cristal de 32768 ligado no Timer2, que possui um oscilador próprio para isto. Veja no datasheet deles.

3 - Nos Fórums do Bascom, existe uma rotina maluca, muito interessante, que faz este ajuste preciso baseado no baud rate da porta serial ! Basta ligar a um micro e teclar uma tecla determinada e pronto ! Ajuste perfeito !

4 - Em várias famílias de Avrs, o timer2 pode operar no modo assincrono, independente do clock principal. Isto é perfeito para um RTC !

5 - Sim, tem de alterar os Fuses, para permitir o uso de um cristal oscilador, em vez do clock interno.

Quanto aos cristais, existem valores que são utilizados em televisõoes, para fazer NTSC ou PAL, ou para fazer batimento com outras frequências. E existem cristais que são multiplos de 2, para facilitar a geração de bases de tempo. E ainda tem cristais que permitem gerar com excelente precisão velocidades seriais ( baud rate ) ....

Pode perguntar à vontade !

Paulo

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...