Ir ao conteúdo
  • Cadastre-se

microcontroladores


Posts recomendados

sou novo no Clube do Hardware quero parabenizar  todos que fazem parte deste topico

trabalho com eletronica  a muitos anos  gosto muito mas agora resolvi  brincar com os microcontroladores

ja faço  pisca pisca botao e led  domino quase bem as rotinas de delays

mas agora me deparei com um problema configurar o oscilador interno para 1mhz do pic 16f818

e estou tomando um coro daqueles  ja fiz de tudo nos osccon  e osctune  e nada

alguem poderia por gentileza salvar desde ja agradeço  so sei assembly

nao consegui aprender c++

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá welcome., vejamos...

Seu mc permite ajustar a freq pra 1mhz? Se sim, uma olhadela básica no datasheet dele penso que lhe pode ser útil. P.ex. pode ser só questão de ajustar os fusíveis ou algum registro. Olha o que penso destes registros que você menciona: oscon: controle do oscilador on the fly e ostune: microajustes. Mostre seu programa e mostre como interpretou o ds que a gente tenta fazer a conexão. Pode ser coisa simples.

Perdão mas permiti-me não ver o ds ok?

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, isadora ferraz disse:

olá welcome. aqui tem uma seção só pra mc, sabia? mas enfim, vejamos...

seu mc permite ajustar a freq pra 1mhz? se sim, uma olhadela básica no datasheet dele penso que lhe pode ser útil. p.ex. pode ser só questão de ajustar os fusíveis ou algum registro. olha o que penso destes registros que você menciona: oscon: controle do oscilador on the fly e ostune: microajustes. mostre seu programa e mostre como interpretou o ds que a gente tenta fazer a conexão. pode ser coisa simples.

perdão mas permiti-me não ver o ds ok?

e um pisca pisca  ele pisca de um em um segundo poderia mudar a rotina de delay para mudar o tempo

so que muitas das vezes nao temos o cristal e usar o cristal interno e uma opção  este e o codico

 

;************************************************************************************
;                  programa – pisca pisca                                 
;************************************************************************************
;                            arquivos de definicoes                    
;************************************************************************************
#include                  ;arquivo padrão microchip para pic16f628a
;************************************************************************************
;                                bits de configuração                        
;************************************************************************************
; __config   _wdt_on & _pwrte_on &  _boden_off & _lvp_off & _cp_off &_intrc_io ;_xt_osc

 
;************************************************************************************
;                              paginacao da memoria                    
;************************************************************************************
;comandos para alteracao de pagina de memoria

bank0    macro                            ;macro para selecionar banco 0
    bcf    status,rp0
    bcf    status,rp1
endm                                    ;fim da macro bank0

bank1    macro                            ;macro para selecionar banco 1
    bsf    status,rp0
    bcf    status,rp1
endm                                    ;fim da macro bank1

;************************************************************************************
;                                    variaveis                            
;************************************************************************************
;enderecos das variaveis utilizadas pelo sistema
;variaveis so reconhecidas no banco 0 de memoria

    cblock    0x20                        ;endereco inicial da memoria do usuario


        temp
                                temp1                            ;0x23 - registrador temporario
        temp2                            ;0x24 - registrador temporario 2
    endc                                ;fim do bloco de memória

;************************************************************************************
;variaveis com espelho em todos os bancos de memoria. reconhecidas em qualquer banco.

;************************************************************************************
;                                   constantes                            
;************************************************************************************
;constantes utilizadas pelo sistema.

 #define          led        pórtb,0

;************************************************************************************
;                                        flags                                
;************************************************************************************
;registrador flags


;************************************************************************************
;                                     entradas                        
;************************************************************************************
;pinos que serao utilizados como entrada

#define       botao1    porta,1            ;0 --> pressionado                                            ;1--> liberado

#define       botao2    porta,2            ;0 --> pressionado
                                        ;1 --> liberado

#define       botao3    porta,3            ;0 --> pressionado
                                        ;1 --> liberado

;************************************************************************************
;                                     saidas                            
;************************************************************************************

;************************************************************************************
;                               inicializa a eeprom
;************************************************************************************

;************************************************************************************
;                                   vetor de reset                        
;************************************************************************************
    org    0x00                        
    goto    inicio                        

;************************************************************************************
;                                  interrupcao                            
;************************************************************************************
;as interrupcoes nao serao utilizadas
    org    0x04                            ;endereco inical da interrupcao
    retfie                                ;retorna da interrupcao

;************************************************************************************
;                                    inicio                                
;************************************************************************************
inicio

    bank1
    _intosc_clkout
    movlw     b'01000100'                            ;altera para banco1
    movwf  osccon
    movlw   b'00011111'
    movwf   osctune      
 
    movlw    b'00000000'
    movwf    trisa                        ;define ra1, ra2 e ra3 como entrada e demais
                                        ;como saida
    movlw    b'00000000'
    movwf    trisb                        ;define o portb como saída
    movlw    b'00000000'
    movwf    option_reg                    ;prescaler 1:32 no tmro
    movlw    b'00000111'                 ;configura ra3:ra0 com i/o
    movwf    adcon1                                    ;tmr0 incrementado pelo ciclo de instrucao
                                          ;aplica prescaler ao tmr0
                                             ;pull_ups desabiliados
                                              ;demais  bits irrelevantes
    movlw     b'00000000'                    ;interrupcoes desabilitadas
    movwf    intcon        
    bank0                                ;ativa banco 0
    movlw    b'00000111'                 ;configura ra3:ra0 com i/o
    movwf    adcon0

;************************************************************************************
;                        inicializacao das variaveis                    
;************************************************************************************

    clrf    porta                        ;limpa porta
    clrf    portb                        ;limpa portb
    clrf        temp
                clrf         temp1
                clrf         temp2                
    
;************************************************************************************
;                            rotina principal                        
;************************************************************************************

main
    

                       call     delay
                       bsf      portb,0
                       call     delay
                       bcf       portb,0
                       goto   main
;************************************************************************************
   delay


             movlw   .100
             movwf    temp
  s1
             movlw     .32
             movwf     temp1

s2
             movlw     .16
             movwf     temp2
s3
             decfsz      temp2,f
             goto        s3
             decfsz      temp1,f
             goto        s2
             decfsz      temp,f
             goto         s1     
             return         


;************************************************************************************
end                                        ;fim do programa
;************************************************************************************

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

ok. (achei que estava no forum eletronica)

 

Seguinte, não mexa no oscon e ostune: deixe o default dele e ve que merdadá. E tens razão:se não precisa de precisão absoluta, é uma boa usar os osc int. E confira no ds se é 1mhz mesmo.

Uma ideia pra ajustar caso precise lé: um programa que pisca um led e lê um botão e incremente o valor do ostune. Com ajuda de um osciloscópio você ve quando a freq está a contento. Sorry, até que posso mas prefiro não ajudar com asm. Se fosse c, quem sabe...

Sucessos...

Link para o comentário
Compartilhar em outros sites

5 minutos atrás, Isadora Ferraz disse:

ok. (achei que estava no forum eletronica)

 

Seguinte, não mexa no oscon e ostune: deixe o default dele e ve que merdadá. E tens razão:se não precisa de precisão absoluta, é uma boa usar os osc int. E confira no ds se é 1mhz mesmo.

Uma ideia pra ajustar caso precise lé: um programa que pisca um led e lê um botão e incremente o valor do ostune. Com ajuda de um osciloscópio você ve quando a freq está a contento. Sorry, até que posso mas prefiro não ajudar com asm. Se fosse c, quem sabe...

Sucessos...

legal  mas muito obrigado vou continuar quebrando a cabeça

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, vtrx disse:

__config   _wdt_on & _pwrte_on &  _boden_off & _lvp_off & _cp_off &_intrc_io ;_xt_osc

_xt_osc=oscilador externo(cristal)

Tente retira este ultimo.

 

nada feito se eu colocar _xt_osc_ &  funciona legal  mas com cristal externo ? interno nada

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
3 horas atrás, joão leopoldino disse:

; __config   _wdt_on & _pwrte_on &  _boden_off & _lvp_off & _cp_off &_intrc_io ;_xt_osc

Agora que vi isso. Está comentado? Sem efeito? ok mas ao descomentar observe que acordaste o cão de guarda. Terás que niná-lo de vez em quando... Se ja o fazes em algum momento do programa, perdão... não me dou muito bem com asm...

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!