Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

Erivadas

Membros Juniores
  • Total de itens

    13
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

0

Sobre Erivadas

  • Data de Nascimento 20-07-1987 (30 anos)

Informações gerais

  • Cidade e Estado
    SP

Outros

  • Ocupação
    Estudante de Eng de Computação
  1. Estou a começar a achar que pode ser do LCD, tem como saber se ele esta quebrado? Ele quando esta alimentado aparece os quadradinhos pretos, por mais que mude a configuração da Inicialização do LCD ele não inicializa. Vou tentar experimentar com outro LCD, não acredito que seja problema do microcontrolador. Mas obrigado pela opinião. Caro vtrx quando voce inicializa um LCD em 8 bits caso ja o tenhas feito qual a sequencia de dados e os tempos que voce respeita ?
  2. Boa noite pessoal Estou com problemas ainda, o Delay consegui resolver mas o LCD não inicializa no modo 8 bits, estou respeitando os tempos e a sequencia de código que mando para inicializar é essa: Espero 15 ms mando #$38 Espero 5 ms mando #$38 Espero 100us mando #$06 Espero 100us mando #$0E Espero 100us mando #$01 Porém ja experimentei no lugar de 100us usar 1ms Ja mudei os tempos de varias maneiras, ja testei as ligações e passa corrente ate chegar ao LCD... Preciso muito da vossa ajuda para inicializar o LCD Obrigado
  3. Boa noite pessoal Consegui fazer com que o Delay funcionasse. Este micro tem 2 Timers, e eu utilizava o segundo TPM2SC, e por alguma razão não dava, acredito que devo ter de mudar em algum lugar nos registradores para utilizar, mas agora que tentei com o TIM1 consegui, simulando no Codewarrior e depois no próprio micro... Delay1sTIM: clr TPM1SC ;Só mudei para o TIM1 ldhx #$00 sthx TPM1MOD lda TPM1SC mov #$0E, TPM1SC Volta: brclr 7, TPM1SC, Volta rts Agora com o Delay funcionando posso testar o LCD...
  4. Pessoal estou com um problema para inicializar o LCD, ja conferi as ligações e estão corretas e todos os cabos passam corrente. Vou deixar aqui o código, acho que devo estar errando na logica usada para o Delay, porque ja não sei mais o que fazer, estou mesmo precisando da vossa ajuda. OBS: 1 ciclo de instrução do micro é de 0,25 us na fbus = 4 MHz caso vocês possam dar outra ideia para o Delay. Se precisarem do Datasheat do micro o nome dele é MC9S08SE8 da Freescale, no próprio site deles tem o datasheat. Tenho aqui o codigo fonte e as ligações do micro com o LCD. LCD equ PTCD RS equ 7 ;0 = instrução 1 = dados PTAD E equ 6 ;0 = desativa 1 = ativa PTAD envelope equ PTBD5 Linha1Casa: DC.B "Codigo de Casa",0 Linha1Unid: DC.B "Codigo de Unidade",0 Linha1Func: DC.B "Codigo de Funcao",0 InicializaLCD: bclr RS, PTAD bclr E, PTAD bsr Delay15ms mov #$38, auxInst bsr EnviaByteInst mov #$38, auxInst bsr EnviaByteInst mov #$06, auxInst bsr EnviaByteInst mov #$0E, auxInst bsr EnviaByteInst mov #$01, auxInst bsr EnviaByteInst bsr Exibe rts ;retorna para o prog principal Exibe: mov #$80, auxInst ;posiciona o cursor na 1Linhax1Coluna bsr EnviaByteInst mov Linha1Casa, auxDado ;escreve "Codigo Casa" no LCD bsr EnviaByteDado mov #$C0, auxInst ;posiciona o cursor na 2Linhax1Coluna bsr EnviaByteInst mov #1, auxDado ;escreve 1 no LCD bsr EnviaByteDado rts ;retorna para InicializaLCD EnviaByteInst: mov auxInst, LCD bclr RS, PTAD bset E, PTAD nop bclr E, PTAD bsr Delay15ms rts EnviaByteDado: mov auxDado, LCD bset RS, PTAD bset E, PTAD nop bclr E, PTAD bsr Delay15ms rts Delay15ms: clr TPM2SC ;reseta e para o contador ldhx #$EA60 ;contador chega a 60000 sthx TPM2MOD lda TPM2SC ;limpa o flag TOF mov #$08,TPM2SC ;Começa contagem LoopTOF: brclr 7, TPM2SC, LoopTOF ;Faz polling em cima do TOF e fica em Loop enquanto ele for 0. rts
  5. Estava dando curto sim caro Meiraneto por isso chegava a reiniciar o pc ate... Eu não tinha reparado porque como os pinos que pluguei no micro são duplos ao por no protoboard eles ficavam em curto entre os pinos na vertical quando plugasse... Mas de qualquer forma muito obrigado por me terem concedido o espaço... Abraço
  6. Pessoal, estou tentando montar um circuito que use o protocolo x10, e estou com dificuldades na função Dim e Bright. O protocolo X10 usa a corrente eletrica como meio de transmissão, e a passagem de informação por meio dos bits 1 e 0 é enviada no cruzamento de zero da senoide na corrente eletrica. Mais informações sobre o protocolo vocês podem encontrar neste site. http://albt.tripod.com/x10.htm Resumidamente ele envia a informações em blocos. Header + Código de Casa + Código de Unidade (2 vezes) Aqui ele endereça o aparelho que queremos enviar o comando. Header + Código de Casa + Código de Função (2 vezes tambem). Aqui ele envia o código contendo a função que ele deseja que o aparelho realize. A minha dúvida consiste nas funções Dim e Bright que podem ser usadas para aumentar a intensidade ou diminuir a intensidade de luz das lampadas. Eu quero saber em que momento eu envio a informação contendo o valor que pretendo pra intensidade de luz, não encontro essa informação. O que cheguei a descobrir foi que o Header que é formado por 4 bits (1110) define os limites de intensidade. Estou pesquisando para um trabalho escolar, mas tem muito pouca informação sobre o assunto (refiro-me a exemplos sobre o Dim e o Bright). Agradeço a vossa ajuda.... Obrigado
  7. acho que nesse caso não é usando colunas e linhas, porque nesse micro voce programa a ISR_KBI definindo os valores dos registradores, primeiro o KBISC (se voce deseja que haja uma interrupção) a seguir o KBEDG (para voce definir se trabalha em nivel alto ou baixo) a seguir o KBIES (para definir que pino voce vai usar para os botões que vão de PTA0 ate 3 e PTB0 ate 3 totalizando 8 pinos que podemos usar para os botões) e depois o KBIPE (para ativar o pull-up interno do micro) Agora para definir que botão foi pressionado, acredito que deve ser a partir do valor setado 1 (caso tenha escolhido nivel alto em KBEDG) nas portas, ou seja comparar entre as portas se nos bits referentes aos botões tem algum que esta em nivel alto 1, se no caso de nivel baixo 0. Por isso li o valor das portas e comparei para saber que botão foi pressionado, tanto que acender um dos LEDs eu ja consegui, o problema é quando tem mais do que um botão e ai tenho através do algoritmo decidir que botão foi pressionado. Sem problemas voce ja esta me ajudando muito parceiro. Obrigado mesmo...
  8. Com relação ao modulo especifico eu tenho conhecimento, não são todas as portas que podem ser usadas para os botões, apenas as que forem KBIP0 ate KBIP7 e das quais 4 estão na PTA0 ate PTA3 e as restantes na PTB0 ate a PTB3. Só essas portas iriam gerar uma interrupção do teclado. Mas o problema esta em "identificar" que porta gerou a interrupção quando mais do que um botão for utilizado no sistema. Acho eu que a maneira é esta, ou seja a lógica que usei, de verificar os bits das portas correspondentes aos botões, visto que as Portas usadas foram direcionadas para input, assim podemos saber se esta em nivel alto ou baixo.
  9. Foi o que fiz, eu fiz um lda PTAD and #$01 ; para comparar apenas o bit0 cmp #$01; para saber se esta setado beq botaoON1 ;desvia se igual para botaoON1 para dentro dele eu dar um bclr 0, PTBD para acender o LED1. e fiz o mesmo para os outros botões lda PTAD and #$02 ; para comparar apenas o bit1 cmp #$02; para saber se esta setado e lda PTAD and #$03 ; para comparar apenas o bit2 cmp #$03; para saber se esta setado O Hardware eu tenho sim, peço desculpas por ter errado o nome do micro, o micro é novo (digo recente e esta em linha sim). O compilador é o CW_MCU_v10.2_SE (codewarrior) da Freescale, e qualquer info podes buscar no próprio site deles. A minha duvida é que quando entra na ISR_KBI ele só deteta o botão1, não sei se a logica esta errada, o meu problema é na logica para detetar qual dos botões foi pressionado. Mas vou verificar também a fiação, coisa que ja fiz, vou voltar a fazer. Como ele só pega o Botão1 achei que pudesse ser do código. Abraços
  10. Não é o 8051 caro vtrx, mas serve também porque a lógica para programar em Assembly seria a mesma, a minha dificuldade esta na escolha de qual botão foi pressionado dentro d a ISR do teclado, o micro usado é o MS9S08SE8 da Motorola.
  11. Boa tarde pessoal Estou fazendo um programa para acender 2 LED e gostaria de usar tres botões (pushbutton) ON1 ON2 e OFFtodos. Os Leds acendem em nivel baixo e estão em ptb0 e ptb1 e os botões em pta0, pta1 e pta2. A minha duvida é a seguinte: Dentro da ISR_KBI (teclado) como faço para saber qual botão foi pressionado? Quero saber se é a partir do valor que estiver nos Bits0, 1 e 2 da porta A apos ser pressionado e abrir a ISR? Seria assim o código? ISR_KBI: lda pta and #$01 cmp #$01 beq botaoON1 lda pta and #$02 cmp #$02 beq botaoON2 ;Caso não for um dos dois só pode ser o OFFtodos bset 0, ptbd ;apaga LED1 bset 1, ptbd ;apaga LED2 bra AtivaBitKBI rti botaoON1: bclr 0, ptbd ;acende LED1 bra AtivaBitKBI rti botaoON2: bclr 1, ptbd ;acende LED2 bra AtivaBitKBI rti AtivaBitKBI: ;Aqui ele volta a ativar o Bit KBI ;para permitir que haja outra interrupção O que quero saber é se a logica que usei para distinguir que botão foi usado esta certa, porque no meu caso esta a dar problemas. A configuração do Registrador de Teclado ja foi feita, no caso quando testo ele acende o LED1 e depois não acende mais o LED2 ou apaga os dois LEDs. Obrigado
  12. Bom dia pessoal, gostaria muito que vocês pudessem ajudar-me com essa situação, é urgente... Obrigado
  13. Eu tenho um kit de demonstração para o MCU MC9S08SE8 (DEMO9S08SE8) e eu gostaria de conecta-lo a algum hardware que eu tenho em um protoboard. Para o efeito, eu inseri uma barra de conectores de pino na protoboard e queria usar o conector para plugar no DEMO9S08SE8. O problema é o seguinte. Quando eu uso o kit de demonstração sem estar plugado no protoboard e apos programá-lo funciona (testei para ver se ele funcionava e consegui acender os LEDs do Micro e usar tambem os dois botões do Micro). No entanto, quando eu ligo o kit no protoboard, no CodeWarrior (estou usando a versão 10.2) dá-me a mensagem "Ocorreu um erro durante a conexão com o hardware de interface ou de destino especificado no diálogo de configuração de lançamento ..." e por vezes esse erro chega a travar o computador, fazendo-o reiniciar. Ja vi se havia curto circuito entre o Vdd e o Vss e não há, porque como o Micro é alimentado pela entrada USB, poderia se dar o caso do USB havendo curto reiniciar o pc, mas não é o caso. O que poderia ser o problema? Qualquer sugestão será bem-vinda. Obrigado.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×