Ir ao conteúdo
  • Cadastre-se

1hsouza1

Membro Pleno
  • Posts

    32
  • Cadastrado em

  • Última visita

  1. Pessoal estou fazendo um projeto com microcontrolador, mas o PIC trabalha com faixas de no máximo 5V de tensão e nesse projeto preciso desligar o disjuntor quando a condição for OK. Então gostaria de saber se existe alguma forma de desarmar um disjuntor com apenas 5V de saída na tensão. Abaixo segue a ilustração do circuito.
  2. Desculpa, errei ! É para conversão em hexadecimal, gostaria de saber se alguém conhece algum método próprio do CCS C que realiza essa conversão direta sem precisar ter que fazer aquela tabela de hexadecimal
  3. Preciso converter o bit digitado de binário para octal no microcontrolador usando o CCS C Compiler, alguém sabe como realizar essa conversão ? MEU CÓDIGO FICOU DA SEGUINTE FORMA #include <16F877A.h> #include <math.h> #use delay(clock = 20M) #define size 10 #include <lcd.c> #use fast_io(b) int a, b, c, d, e, f, g, decimal; unsigned int8 aux, dezena, unidade; void main(void){ lcd_init(); while(TRUE){ //aqui captura os bits digitados nos pinos B a = input(PIN_B0); b = input(PIN_B1); c = input(PIN_B2); d = input(PIN_B3); e = input(PIN_B4); f = input(PIN_B5); g = input(PIN_B6); // aqui converte para decimal decimal = (a<<6)|(b<<5)|(c<<4)|(d<<3)|(e<<2)|(f<<1)|(g<<0); printf(lcd_putc,"\fBINARIO = %u%u%u%u%u%u%u \nOctal = %u"a, b, c, d, e, f, g, decimal); delay_ms(100); aux = decimal / 10; dezena = (int)floor(aux); aux = decimal - (10 * dezena); unidade = (int)floor(aux); output_c(matriz[dezena][unidade]); delay_ms(100); } }
  4. @aphawk segue abaixo a resolução: #include <16F877A.h> #include <math.h> #use delay(clock = 20M) #define size 10 #include <lcd.c> const unsigned char matriz[size][size] = { {0, 16, 32, 48, 64, 80, 96, 112, 128, 144}, {1, 17, 33, 49, 65, 81, 97, 113, 129, 145}, {2, 18, 34, 50, 66, 82, 98, 114, 130, 146}, {3, 19, 35, 51, 67, 83, 99, 115, 131, 147}, {4, 20, 36, 52, 68, 84, 100, 116, 132, 148}, {5, 21, 37, 53, 69, 85, 101, 117, 133, 149}, {6, 22, 38, 54, 70, 86, 102, 118, 134, 150}, {7, 23, 39, 55, 71, 87, 103, 119, 135, 151}, {8, 24, 40, 56, 72, 88, 104, 120, 136, 152}, {9, 25, 41, 57, 73, 89, 105, 121, 137, 153} }; int a, b, c, d, e, f, g, decimal; unsigned int8 aux, dezena, unidade; void main(void){ for(int i = 0; i < size; i++){ for(int j = 0; j < size; j++){ output_c(matriz[i][j]); delay_ms(100); } } delay_ms(500); lcd_init(); while(TRUE){ a = input(PIN_B0); b = input(PIN_B1); c = input(PIN_B2); d = input(PIN_B3); e = input(PIN_B4); f = input(PIN_B5); g = input(PIN_B6); decimal = (a<<6)|(b<<5)|(c<<4)|(d<<3)|(e<<2)|(f<<1)|(g<<0); printf(lcd_putc,"\fBINARIO = %u%u%u%u%u%u%u \nDECIMAL = %u"a, b, c, d, e, f, g, decimal); delay_ms(100); aux = decimal / 10; dezena = (int)floor(aux); aux = decimal - (10 * dezena); unidade = (int)floor(aux); output_c(matriz[dezena][unidade]); delay_ms(100); } } "Eu sei daria para usar multiplexador ou um vetor com 10 valores e outra forma, mas o meu objetivo era outro método porque na web nunca encontrei resoluções com matrizes, então resolvi dessa forma para compartilhar conhecimento." Talvez o interessados futuramente possa aplicar ou usar em algo bem útil.
  5. @kgin Valeu amigo ! Funcionou Funcionou conforme eu esperava
  6. Preciso usar uma matriz de 10x10 em CCS C Compiler, mas na hora de executar o Compilador está pedindo + memória ! Alguém sabe como resolver isso ? Meu código ficou da seguinte forma abaixo: #include <16F877A.h> #include <stdio.h> #include <stdlib.h> #use delay(clock = 20MHz) #use fast_io(b) unsigned int8 a, b, c, d, e; int *mat[10][10] = { {0, 16, 32, 48, 64, 80, 96, 112, 128, 144} {1, 17, 33, 49, 65, 81, 97, 113, 129, 145} {2, 18, 34, 50, 66, 82, 98, 114, 130, 146} {3, 19, 35, 51, 67, 83, 99, 115, 131, 147} {4, 20, 36, 52, 68, 84, 100, 116, 132, 148} {5, 21, 37, 53, 69, 85, 101, 117, 133, 149} {6, 22, 38, 54, 70, 86, 102, 118, 134, 150} {7, 23, 39, 55, 71, 87, 103, 119, 135, 151} {8, 24, 40, 56, 72, 88, 104, 120, 136, 152} /*{9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169} };*/ void main(void){ while(TRUE){ } } Question_1.7z Question_1.7z
  7. @.if Opa ! + 1 para a conta, melhorou meu código ! Economizei linhas de código Valeu
  8. @.if #include <16F877A.h> #device adc = 8 #use delay(clock = 20MHz) #use fast_io(b) #include <lcd.c> unsigned int8 a, b, c, d; byte decimal; void main(void){ lcd_init(); while(TRUE){ if(input(PIN_B0) == 1){ a = 1; }else{ a = 0; } if(input(PIN_B1) == 1){ b = 1; }else{ b = 0;} if(input(PIN_B2) == 1){ c = 1; }else{ c = 0; } if(input(PIN_B3) == 1){ d = 1; }else{ d = 0; } decimal = (a<<3)|(b<<2)|(c<<1)|(d<<0); output_c(decimal); printf(lcd_putc,"\fBINARIO = %u%u%u%u \nDECIMAL = %u"a, b, c, d, decimal); delay_ms(200); } }
  9. @.if Obrigado ! Agora funcionou 100% da forma que eu quero !
  10. @.if Amigo meu objetivo é concatenas essas variáveis: Ex: a = 1, b = 0, c = 0, d = 1, e = 1; Juntando elas em uma única variável ficariam assim 10011
  11. @.if Amigo na compilação em C funcionou, porém em CCS C compiler para microcontroladores não funcionou !
  12. Pessoal gostaria de transformar a entrada dos botões nos pinos B para um codificador, estou com 2 problemas: O 1° é que eu fiz variáveis separadas a, b, c, d, e . Logo depois preciso junta-las e converter para decimal O 2° problema é que eu preciso converter na porta C na forma output_c(0x..) ; Que não faço a menor ideia em como fazer isso ! Meu código ficou da seguinte forma: #include <16F877A.h> #device adc = 8 #use delay(clock = 20MHz) #include <lcd.c> int a, b, c, d, e, decimal; void main(void){ lcd_init(); while(TRUE){ if(input(PIN_B0) == 1){ a = 1; }else{ a = 0;} if(input(PIN_B1) == 1){ b = 1; }else{ b = 0; } if(input(PIN_B2) == 1){ c = 1; }else{ c = 0;} if(input(PIN_B3) == 1){ d = 1; }else{ d = 0;} if(input(PIN_B4) == 1){ e = 1; }else{ e = 0;} //decimal = a, b, c, d; junta esses bits e converte em decimal printf(lcd_putc,"\fBINARIO = %u%u%u%u%u \nDECIMAL = %u"a, b, c, d, e, decimal); delay_ms(200); output_c(0x07); // aqui preciso imprimir o decimal (substituir o 0x07 pelo decimal como exemplo) } }
  13. @.if Não vou trabalhar com torque, o meu objetivo é apenas encontrar uma equação matemática que se aplique a nesse código.

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