Ir ao conteúdo

Posts recomendados

Postado

Oi:

Tenho uma dúvida, se alguém puder me ajudar, eu agradeço.:)

 

- Quando eu programo PIC em assembly, eu tenho que configurar todos os registradores relacionados à um determinado pino para liberá-lo para I/O (por exemplo) ou para utilizá-lo numa função específica, certo? (essa é a parte trabalhosa de se programar em assembly 😬)

Por exemplo:

            MOVLW        B'00000111'
            MOVWF        CMCON
            MOVLW        B'00110001'
            MOVWF        T1CON
            BCF               RCSTA,SPEN
            BANKSEL      TRISB
            BSF               PIE1,TMR1IE
            MOVLW        B'00000001'
            MOVWF        TRISB
            CLRF            TRISA
            MOVLW        B'11000111'
            MOVWF       OPTION_REG
            BANKSEL     PORTB
            MOVLW        B'11000000'
            MOVWF        INTCON

 

- Quando eu programo PIC em linguagem C (compilador CCS), eu tenho que configurar todos os registradores relacionados à um determinado pino para liberá-lo para I/O (por exemplo ou para utilizá-lo numa função específica) ou não, basta os comandos para utilizar a USART (por exemplo) que o próprio compilador se encarrega de desativar todas as outras funções do pino correspondente?

 

Ou seja, quando eu escolho uma função para um determinado pino, todas as outras funções desse pino são desativadas automaticamente pelo compilador C CCS ou é preciso EU procurar os registradores para desativar as funções, uma por uma?

 

Essa é a minha grande dúvida, se alguém souber e puder me ajudar, eu agradeço.:thumbsup:

 

  • Solução
Postado

No CCS quando voce usa a programação normal ele faz isso sozinho baseado na sua rotina,a desvantagem é que o código fica um pouco maior pois toda vez que usa uma função no pino ele gera uma instrução a mais.

Se voce usar a diretriz #use fast_io(x),onde X e a Porta,voce tem que definir igual em ASM e desse modo as rotinas ficam mais rápidas.

Postado
5 horas atrás, vtrx disse:

No CCS quando voce usa a programação normal ele faz isso sozinho baseado na sua rotina

Oi:

Pelo que eu entendi (desculpe a lerdeza), você está dizendo que quando eu escolho uma função para um determinado pino, todas as outras funções desse pino são desativadas automaticamente pelo compilador C CCS , é isso? :bye:.   Se for, é maravilhoso! Amei!😍

5 horas atrás, vtrx disse:

#use fast_io(x)

 

5 horas atrás, vtrx disse:

Se voce usar a diretriz #use fast_io(x),onde X e a Porta,voce tem que definir igual em ASM e desse modo as rotinas ficam mais rápidas.

 

Para entender melhor o que você disse, pesquisei "#use fast_io(x)"  no google e achei um post  seu de 2013:

 

Todos os ports.

Citação:  use fast_io(x) 

Define que voce vai setar a direção dos pinos como entrada e saida manualmente.

Isso deixa o código muito eficaz e evita que o compilador decida a hora de trocar os pinos como entrada ou saida.

fast_io() evita que o compildora encha o código de MOVLW '00001111', MOVWF TRIS a toda hora.

 

Ou seja, toda a vez que eu usar o #use fast_io(x), eu vou ter que configurar o TRIS. Mas se eu não usar, programar PICs vai ser igual a programar 8051:wub:.  

 

(Tudo bem usar memória de programa a mais, se tiver de sobra (às vezes sobra muito)).

 

Amigo, confirma aí para ver se eu entendi direito, por favor!!! :confused:

 

 

 

 

 

 

 

Postado

Sim,isso mesmo,mas se entendeu direito Fastio é definido no inicio do programa uma vez só,e no inicio do Main voce seta o tris.

sem usar Fastio,cada vez que usa um pino,o compilador muda o tris.

Andei lendo uns post meus ,bem antigos,e não lembro como escrevi na época...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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