1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida (PICBASIC)

Discussão em 'Programação' iniciada por sistem, 28 de Outubro de 2008. (Respostas: 2; Visualizações: 1476)

  1. Boas, é assim:
    A algumas aulas comecei a trabalhar com o PICBasic, sem qualquer preparaçao de parte do professor a nao se alguns exercicios para nos abituarmos e tal e um manual de PicBasic(umas 400 paginas), e amanha e suposto termos um laboratorio a serio onde contará para a nota. E vai sair para fazer um programa tipo o de hoje, e aí esta o problema, consegui fazer todos os problemas menos o de hoje ke foi mais complicado, ninguem na turma consegui fazer.

    E suposto fazermos um programa, programar.mos a placa e depois no lcd da placa contar de 0 ate 100, e dps de 100 ate 0, depois de 0 ate 100, e dps de 100 ate 0, sempre assim ciclicamente, o que me aconteceu foi que depois de ter feito o programa, no lcd so apareciam 2 simbolos eskesitos e um 1, na tentativa anterior, apareciam 2 simbolos eskesitos, e o 3 estava a alternar entre simbolos eskesitos, palpito ke estivesse a percorrer a tabela ASCII ate 100 ou kalker coisa assim.

    Aki fica o programa ke eu fix:

    Código:
    '****************************************************************
            ' Declaraçao do microcontrolador e velocidade do cristal
    '****************************************************************
    declare bootloader=on
    Device = 16F877
    XTAL =4     'o XTAL define qual a velocidade de processamento
    
    AdCon1=7
    
    Declare lcd_dtpin Portb.4
    declare lcd_enpin portb.3
    Declare lcd_rspin portb.2
    Declare lcd_interface 4
    Declare lcd_lines 2
    Declare lcd_type alpha
    
    
    '****************************************************************
            ' Declaraçao das variaveis
    '****************************************************************
    dim Contador as byte 
    Hrsin DEC Contador
    Contador = 0
    '****************************************************************
            ' INICIO DO PROGRAMA
    '****************************************************************
    
    INICIO:
    
    cls 
       Print dec 1,1, Contador
       Inc Contador
       Delayms 500
        If Contador = 100 Then goto decrementar    
    Goto Inicio
    
    Decrementar:
    Cls
        Print dec 1,1, Contador
        Dec Contador
        Delayms 500
         If contador = 0 Then goto Inicio
    Goto Decrementar
    
    ~~Obrigado em adiantado e abraços :009::009::009:
     
    Última edição pelo moderador: 29 de Outubro de 2008
  2. Esse pic trabalha a 20mhz, tens o teu programa a inicializar a 4. Coloca isso pelo menos a 10mhz, esse pic faz no minimo 100ns por cada instrução de ciclo.
    Parece faltar também instruções para a limpeza da Ram antes de inicar a tua rotina.
    Verifica o manual do chip tens lá muita informação.
    Atenção aos cristais usados, existe no mercado material de muito baixa qualidade, gerando '3ºs estados' nos pics e outros microcontroladores.

    Boa sorte.
     
  3. Tens razão em relação a isso, de dizeres que o pic percorre o codigo ascii todo. O que deverás fazer é converter o teu contador, para um codigo ascii. Nao te sei dizer como fazer isso em pic basic, mas no mikroc basta utilizares a funçao inttostr(x,y) em que y é uma variavel do tipo char e a x é uma variavel do tipo int.

    cumps
     

Partilhar esta Página