como imprimir uma string em 16 * 16 Dot Matrix from AVR


Eu quero a saída da string "LED GAME", como indicado na imagem.
Mas na matriz de pontos, existem apenas 16 + 16 = 32 pinos. Existe
alguma maneira de imprimir uma string de avr para dotmatrix?


![enter image description here](https://i.stack.imgur.com/aUOhG.png)
Como você pode identificar o Pin 1 Of Dot matrix?



O pino mais à esquerda da matriz de pontos no lado oposto da
etiqueta "2088BH-B" é o pino 1.


Você pode obter uma ideia completa das duas imagens a seguir.
![insira a descrição da imagem aqui](https://i.stack.imgur.com/9AAzS.png)


![enter image description here](https://i.stack.imgur.com/RVI4X.png)


Espero que isso ajude muito. Você também pode tentar o seguinte
código que é escrito para mostrar 9 em matriz de pontos
(compilador: micro-C)



```
void main() 
{
     DDRB = 0b11111111;
     DDRC = 0b11111111;
     while(1)
     {
           PORTB=0b00000000; //1
           PORTC=0b10000000;
            Delay_us(5);

           PORTB=0b00000000;       //2
           PORTC=0b01000000;
            Delay_us(5);

           PORTB=0b00000000;          //3
           PORTC=0b00100000;
            Delay_us(5);

           PORTB=0b00000000;             //4
           PORTC=0b00010000;
            Delay_us(5);

           PORTB=0b10011110; //5
           PORTC=0b00001000;
            Delay_us(5);

           PORTB=0b10010010;       //6
           PORTC=0b00000100;
            Delay_us(5);

           PORTB=0b10010010;          //7
           PORTC=0b00000010;
           Delay_us(5);

           PORTB=0b11111110;             //8
           PORTC=0b00000001;
           Delay_us(5);

     }
}

```
para multiplicar matrizes em c++, é utilizando o algoritmo abaixo:includeint main (){int mt1 [3][2], mt2 [2][3];int linha, coluna;int mtres[3][3];//primeira matriz 3x2printf ("digite a matriz 1:\n");for(linha=0; linha<3; linha++){ for(coluna=0; coluna<2; coluna++) scanf("%10d", &mt1[linha][coluna]);}for (linha=0; linha<3; linha++){ for(coluna=0; coluna<2; coluna++) printf ("%5d", mt1[linha] [coluna]); printf("\n\n");}//segunda matriz 2x3printf ("digite a matriz 2:\n");for(linha=0; linha<2; linha++){ for(coluna=0; coluna<3; coluna++)scanf("%10d", &mt2[linha][coluna]);}for (linha=0; linha<2; linha++){for(coluna=0; coluna<3; coluna++)printf ("%5d", mt2[linha] [coluna]);printf("\n\n");}//multiplicaçao da primeira com a segunda matriz= matriz quadrada [3][3] printf("resultado da matriz resultante");/*agora a multiplicação das duas*/ for (linha=0;linha<3;linha++) { for(coluna=0;coluna<3;coluna++) mtres[linha][coluna]=(mt1[linha][coluna]*mt2[linha][coluna]);/*armazenando em uma terceira*/ }for(linha=0;linha<3;linha++){ for(coluna=0;coluna<3;coluna++) printf("%5d",mtres[linha][coluna]); printf ("\n\n");}system ("pause");return 0;}sendo assim, com esse algoritmo podemos multiplicar as matrizes que quisermos. fonte: http://www.guj.com.br/t/multiplicacao-de-matrizes-em-c/281819 <p>olá daniel,</p>
<p>parece que o problema é que você está comparando o texto digitado no input com um número inteiro.</p>
<p>o valor retornado pela função <code>input</code> é string.</p>
<p>experimente modificar o código para:</p>
<pre class="prettyprint"><code>if g &#61;&#61; &#39;1&#39;:
 print(&#39;oque é oque é?&#39;)
 oque.adivinhacao()
elif g &#61;&#61; &#39;2&#39;:
 print(&#39;ultimas palavras?&#39;)
 game.forca()</code></pre><p>se tiver problemas avise...</p>
<p>luan</p> <p>tu deve fazer mostrar o resultado da soma dos números entre 1 e 1000. para isso, a impressão do resultado deve estar fora do laço, com certeza.</p> como não é especificada a linguagem a ser utilizada, vamos usar python3. o código abaixo, devidamente comentado, faz o que se pede:print('digite as notas separadas por espaço (um aluno por linha): ')\nnotas = list()# cria a matriz\nfor \_ in range(5):# para cada um dos 5 alunos\nnotas.append(list(map(float,input().split())))# lê as 4 notas\nfor i in range(len(notas)):# para cada aluno\nprint(f'média aluno {i}: {0.25*sum(notas[i])}')# imprime a média\nmg = 0.05*sum([sum(aluno) for aluno in notas])# média geral\nprint(f'média geral: {mg}') # imprime média geral\nn = sum([0.25*sum(aluno)>mg for aluno in notas])# número acima da média\nprint(f'número acima da média: {n}')# imprime número acima da média <h2>7 bits ascii?</h2><p>se o seu tardis acabou de chegar em 1963, e você quer apenas o 7 bit imprimível ascii chars, você pode copiar tudo de 0 a 31 e 127 a 255 com isto:</p><pre><code>$string = preg\_replace('/[\x00-\x1f\x7f-\xff]/', '', $string); </code></pre><p>ele corresponde a qualquer coisa no intervalo de 0 a 31, 127 a 255 e remove-o. </p><h2>8 bits estendido ascii?</h2><p>você caiu em um time machine hot tub, e você está de volta nos anos oitenta. se você tem alguma forma de ascii de 8 bits, então você pode querer manter os caracteres no intervalo de 128-255. um ajuste fácil - basta olhar para 0-31 e 127</p><pre><code>$string = preg\_replace('/[\x00-\x1f\x7f]/', '', $string); </code></pre><h2>utf-8?</h2><p>ah, bem vindo de volta ao século 21. se você tem uma string codificada em utf-8, então o <code>/u</code> <a href="http://php.net/manual/en/reference.pcre.pattern.modifiers.php">modifier</a> pode ser usado no regex</p><pre><code>$string = preg\_replace('/[\x00-\x1f\x7f]/u', '', $string); </code></pre><p>isso apenas remove 0-31 e 127. isso funciona em ascii e utf-8 porque ambos compartilham o <a href="http://www.fileformat.info/info/charset/utf-8/list.htm">mesmo intervalo de conjunto de controles</a> (como observado por mgutt abaixo). estritamente falando, isso funcionaria sem o modificador <code>/u</code>. mas isso facilita a vida se você quiser remover outros caracteres ...</p><p>se você está lidando com unicode, existem <a href="https://stackoverflow.com/questions/3770117/what-is-the-range-of-unicode-printable-characters">potencialmente muitos elementos não-imprimíveis</a> , mas vamos considerar um simples: <a href="https://unicode-table.com/en/00a0/">no-break space (u + 00a0)</a> </p><p>em uma string utf-8, isso seria codificado como <code>0xc2a0</code>. você pode procurar e remover essa sequência específica, mas com o modificador <code>/u</code> no lugar, você pode simplesmente adicionar <code>\xa0</code> à classe de caractere:</p><pre><code>$string = preg\_replace('/[\x00-\x1f\x7f\xa0]/u', '', $string); </code></pre><h2>adenda: e sobre str\_replace?</h2><p>preg\_replace é bastante eficiente, mas se você está fazendo esta operação muito, você pode construir uma matriz de caracteres que você deseja remover, e usar str\_replace como observado por mgutt abaixo, por exemplo.</p><pre><code>//build an array we can re-use across several operations $badchar=array( // control characters chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7), chr(8), chr(9), chr(10), chr(11), chr(12), chr(13), chr(14), chr(15), chr(16), chr(17), chr(18), chr(19), chr(20), chr(21), chr(22), chr(23), chr(24), chr(25), chr(26), chr(27), chr(28), chr(29), chr(30), chr(31), // non-printing characters chr(127) ); //replace the unwanted chars $str2 = str\_replace($badchar, '', $str); </code></pre><p>intuitivamente, isso parece que seria rápido, mas nem sempre é o caso, você deve definitivamente comparar para ver se você economiza alguma coisa. fiz alguns benchmarks em vários comprimentos de string com dados aleatórios, e esse padrão surgiu usando o php 7.0.12</p><pre><code> 2 chars str\_replace 5.3439ms preg\_replace 2.9919ms preg\_replace is 44.01% faster 4 chars str\_replace 6.0701ms preg\_replace 1.4119ms preg\_replace is 76.74% faster 8 chars str\_replace 5.8119ms preg\_replace 2.0721ms preg\_replace is 64.35% faster 16 chars str\_replace 6.0401ms preg\_replace 2.1980ms preg\_replace is 63.61% faster 32 chars str\_replace 6.0320ms preg\_replace 2.6770ms preg\_replace is 55.62% faster 64 chars str\_replace 7.4198ms preg\_replace 4.4160ms preg\_replace is 40.48% faster 128 chars str\_replace 12.7239ms preg\_replace 7.5412ms preg\_replace is 40.73% faster 256 chars str\_replace 19.8820ms preg\_replace 17.1330ms preg\_replace is 13.83% faster 512 chars str\_replace 34.3399ms preg\_replace 34.0221ms preg\_replace is 0.93% faster 1024 chars str\_replace 57.1141ms preg\_replace 67.0300ms str\_replace is 14.79% faster 2048 chars str\_replace 94.7111ms preg\_replace 123.3189ms str\_replace is 23.20% faster 4096 chars str\_replace 227.7029ms preg\_replace 258.3771ms str\_replace is 11.87% faster 8192 chars str\_replace 506.3410ms preg\_replace 555.6269ms str\_replace is 8.87% faster 16384 chars str\_replace 1116.8811ms preg\_replace 1098.0589ms preg\_replace is 1.69% faster 32768 chars str\_replace 2299.3128ms preg\_replace 2222.8632ms preg\_replace is 3.32% faster </code></pre><p>os tempos próprios são para 10000 iterações, mas o que é mais interessante são as diferenças relativas. até 512 chars, eu estava vendo preg\_replace sempre vencer. no intervalo de 1-8kb, o str\_replace tinha um edge marginal. </p><p>eu pensei que era um resultado interessante, então incluí-lo aqui. <em>o importante é não pegar este resultado e usá-lo para decidir qual método utilizar, mas para fazer benchmark com seus próprios dados e depois decidir.</em></p> <p><code>arrays</code> em java tem um tamanho definido, não é possível alterá-lo posteriormente adicionando ou removendo elementos (você pode ler alguns princípios básicos <a href="http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html">aqui</a> ).</p><p>em vez disso, use um <a href="http://docs.oracle.com/javase/6/docs/api/java/util/list.html"><code>list</code></a> :</p><pre><code>arraylist&lt;string&gt; mylist = new arraylist&lt;string&gt;(); mylist.add(mystring); //this adds an element to the list. </code></pre><p>obviamente, se você souber antecipadamente quantas seqüências de caracteres você colocará em sua matriz, poderá criar uma matriz desse tamanho e definir os elementos usando a posição correta:</p><pre><code>string[] myarray = new string[numberofstrings]; myarray[23] = string24; //this sets the 24'th (first index is 0) element to string24. </code></pre> <p>olá diogo,</p>
<p>acredito que esteja só faltando uma vírgula antes do 0 pra separar os três parâmetros da função print. faz um teste e vê se resolve!</p> começando com a letra a, temos que separar em 2 casos:


-quando b e d são pintados com a mesma cor. (1)


- quando b e d não são pintados com a mesma cor. (2)


(1) letra a - 3 opções


letra b - 2 opções


letra c - 1 opções


letra d - 1 opção


total: 3 * 2*1*1 = 6


 


(2)


letra a - 3 opções


letra b - 2 opções


letra c - 2 opções


letra d - 1 opção


total: 3 * 2*2*1 = 12 


 


**resposta: 6 + 12 = 18.**


**letra c** olá victor, tudo bem?o problema do seu código é que você está declarando o vetor de strings de maneira incorreta. o certo é usar assim: char nome[5][100]; onde o primeiro par de colchetes é o ta... Você provavelmente está pensando sobre o termo **octeto** que é muitas vezes usado como sinônimo de um caractere de byte único (não-unicode). Octeto neste caso significa oito bits. Um personagem pode ser oito ou dezesseis ou mesmo mais bits, mas um octeto é sempre oito bits.