Leoveira
Membro Pleno-
Posts
28 -
Cadastrado em
-
Última visita
Reputação
15-
Arduino R_AVR_7_PCREL against `no symbol'
Leoveira respondeu ao tópico de Leoveira em Microcontroladores
@aphawk vou ter que fazer isso por ICSP. TO pesquisando como fazer nesse modelo de Atmega, as informações são bem escassas. -
Arduino R_AVR_7_PCREL against `no symbol'
Leoveira respondeu ao tópico de Leoveira em Microcontroladores
Então, descobri isso do 16 Mhz fazendo uns testes aqui, o cara que montou essa impressora me disse que era 20Mhz com toda a certeza. E realmente o erro não acontece mais na hora de compilar depois que mudei, porém parece que aconteceu algum erro quando subi o código e a placa não e mais reconhecida pelo computador. Pelo visto vou ter que gravar o bootloader novamente no ATmega1284P-PU. -
Arduino R_AVR_7_PCREL against `no symbol'
Leoveira respondeu ao tópico de Leoveira em Microcontroladores
Ainda não achei nada sobre esse erro, mas reparei em uma coisa: a Gen7BR2 que eu uso tem um ATmega1284P-PU de 20MHz. Se eu mudar para o ATmega1284P-PU de 16MHz o erro não aparece. -
Tenho uma impressora 3D que usa uma placa Gen7 (processador ATMEGA 1284p). Estou tentando subir o firmware na minha impressora, mas toda vez que verifico o código ele me retorna esse erro: C:\Users\apren\AppData\Local\Temp\ccBbHVpl.ltrans0.ltrans.o: In function `zigzag': C:\Users\apren\AppData\Local\Temp\arduino_build_817137\sketch/nozzle.h:120:(.text+0xcc8): relocation truncated to fit: R_AVR_7_PCREL against `no symbol' collect2.exe: error: ld returned 1 exit status Já verifiquei o nozzle.h na linha 120 e não tem erro algum. Alguma sugestão?
-
E por que eu dou nome conforme se pede no exercício, a ideia e que ficasse fácil de entender o que cada variável, vetor ou função faz. Como você escreveu em C eu fiquei meio perdido mas acho que entendi mais ou menos, mas o que seria o comando puts? Eu coloquei uma ponteiro para alocar o tamanho do vetor para ver se resolve o problema, mas não resolveu. #include <iostream> #include <stdlib.h> using namespace std; int*alocavetor (int tamanho){ int *aux; //alocação dinamica de memoria aux= (int*) malloc(tamanho *sizeof(int)); //retorna o valor alocado return aux; } int piramidal(int sequencia[]){ int tamanho=0,x,y; //armazenar valores cout << "Digite o numero de elementos: "; cin >> tamanho; cout << "Digite uma sequencia de numeros: "; for(x=0;x<tamanho;x++){ cin >> sequencia[x]; } cout<<"\n"; //exibir int cont=0; for(x=0;x<tamanho;x++){ for(y=0;y<tamanho;y++){ if(x>=y){ cout << sequencia[cont] << " "; cont++;} else if(x == tamanho ||y == tamanho ){ break; } else; } cout<<"\n"; } } int main(){ int tamanho=0, *sequencia,chama_funcao; cout << "\n\t Piramidal\n"; sequencia=alocavetor(tamanho); chama_funcao=piramidal(sequencia); }
-
Consegui fazer, porém se deu defino 10 elementos ele está exibindo uns valores estranhos depois dos 10 . #include <iostream> using namespace std; int piramidal(int sequencia[]){ int elementos=0,x,y; //armazenar valores cout << "Digite o numero de elementos: "; cin >> elementos; cout << "Digite uma sequencia de numeros: "; for(x=0;x<elementos;x++){ cin >> sequencia[x]; } cout<<"\n"; //exibir int cont=0; for(x=0;x<elementos;x++){ for(y=0;y<elementos;y++){ if(x>=y){ cout << sequencia[cont] << " "; cont++;} else if(x == elementos ||y == elementos ){ break; } else; } cout<<"\n"; } } int main(){ int elementos=0, sequencia[elementos],chama_funcao; cout << "\n\t Piramidal\n"; chama_funcao=piramidal(sequencia); }
-
/*Uma sequência de n números inteiros não nulos é dita piramidal m-alternante se é constituída por m segmentos: o primeiro com um elemento, o segundo com dois elementos e assim por diante até o m-ésimo, com m elementos. Além disso, os elementos de um mesmo segmento devem ser todos pares ou todos ímpares e para cada segmento, se seus elementos forem todos pares (ímpares), os elementos do segmento seguinte devem ser todos ímpares (pares). Por exemplo, a sequência com n = 10 elementos: 12 3 7 2 10 4 5 13 5 11 é piramidal 4-alternante. A sequência com n = 3 elementos: 7 10 2 é piramidal 2-alternante. A sequência com n = 8 elementos: 1 12 4 3 13 5 12 6 não é piramidal alternante pois o último segmento não tem tamanho 4. (a) Escreva uma função bloco que recebe como parâmetro um inteiro n e lê n inteiros do teclado, devolvendo um dos seguintes valores: 0, se os n números lidos forem pares; 1, se os n números lidos forem ímpares; -1, se entre os n números lidos há números com paridades diferentes. (b) usando a função do item anterior, escreva um programa que, dados um inteiro n > 1 e uma sequência de n números inteiros, verifica se ela é piramidal m-alternante. O programa deve imprimir o valor de m ou dar a resposta não.*/ #include <iostream> using namespace std; int piramidal(int sequencia[]){ int elementos,cont; //armazenar valores cout << "Digite o numero de elementos: "; cin >> elementos; cout << "Digite uma sequencia de numeros: "; for(cont=0;cont<elementos;cont++){ cin >> sequencia[cont]; } //exibir for(cont=0;cont<elementos;cont++){ cout << sequencia[cont]; } int main(){ int elementos=0, sequencia[elementos],chama_funcao; cout << "\n\t Piramidal\n"; chama_funcao=piramidal(sequencia); }
-
@XenoStory acho que também não expliquei muito claro. Por exemplo se eu colocar para ser 10 elementos e eles vão ter a seguinte sequencia (12, 42, 22, 65, 87, 34, 56, 1, 98 e 23), eu não preciso coloca-los em ordem crescente. Mas preciso que o numero de números exibidos por linha seja crescente. EX.: 12 42, 22 65, 87, 34 56, 1, 98, 23 Com dois laços de repetição eu não consegui, e também não consegui pensar em uma maneira que não parece-se desnecessariamente complicada para limitar. Mas ainda to na luta do raciocínio aqui.
-
Boa tarde, estou fazendo um exercício que na qual eu preciso definir o numero de elementos e uma sequencia que deve ser impressa assim: Ex: N=10(numero de elementos) 1 23 456 78910 O exercício pede mais coisas, mas creio que consigo fazer o resto. Meu problema e só essas manipulações de vetores que ainda estão me dando trabalho.
-
@Simon Viegas me salvou de novo. Deu certinho, obrigado.
-
Funcionou mas agora o erro e esse: error: invalid types 'float[int]' for array subscript
-
Eu tive esse pensamento, mas só lembrei de colocar o media como float. Nem tinha percebido, obrigado por me lembrar. Obrigado a todos pela ajuda. adicionado 20 minutos depois Só uma duvida coloquei o meu código em uma função é esta dando o erro "error: cannot convert 'float' to 'float*' for argument '1' to 'float suavizacao(float*)' ". #define tam 10 float suavizacao(float vetor[tam]){ int cont; float media=0; for(cont=0;cont<tam;cont++){ if(cont ==0){ media=(vetor[cont]+vetor[cont+1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } else if(cont ==9){ media=(vetor[cont]+vetor[cont-1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } else{ media=(vetor[cont-1]+vetor[cont]+vetor[cont+1])/3; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } } return 0; } int main(){ float valores[tam],teste; int cont; cout << "\n\t Suavizacao de vetor\n"; cout << "\nDigite dez valores: "; for(cont=0;cont<tam;cont++){ cin >> valores[cont]; } suavizacao(valores[tam]); }
-
Boa noite, tenho que fazer a suavização de um vetor de 10 posições. A suavização consiste em substituir o valor atual de uma posição pela média do valor da posição anterior, da posterior e dele próprio. Assumindo que o identificador do vetor é v, então v=(v[i-1]+v+v[i+1])/3, (exceto o primeiro e o último). O primeiro elemento do vetor é suavizado com base na média entre os dois primeiros valores e o último elemento é suavizado com base na média entre os dois últimos. Meu código ficou assim: #include<iostream> using namespace std; int main(){ int tam=10,vetor[tam],cont; float media=0; cout << "\n\t Suavização de vetor\n"; cout << "\nDigite dez valores: "; for(cont=0;cont<tam;cont++){ cin >> vetor[cont]; } for(cont=0;cont<tam;cont++){ if(cont ==0){ media=(vetor[cont]+vetor[cont+1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } if(cont ==9){ media=(vetor[cont]+vetor[cont-1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } else{ media=(vetor[cont-1]+vetor[cont]+vetor[cont+1])/3; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } } } Ele não está retornando os valores corretamente, alguém sabe qual pode ser o erro?
-
@Simon Viegas sobre primeira parte eu costumo fazer isso, mas quando fico perdido eu ignoro isso até resolver e depois volto e arrumo(se eu fizesse desde de o inicio evitava perda de tempo). Mas obrigado de todo jeito, vou tentar ter esse costume em mente. Sobre a segunda parte eu realmente não entendi o que você quis dizer ou insinuar, minha duvida era sobre isso: E minha dificuldade era na lógica, eu estava colocando mais complicação do que havia. Mas agradeço a colaboração de todos, me ajudaram bastante. adicionado 2 minutos depois O código ficou assim: #include <iostream> #include <math.h> using namespace std; #define juizes 5 int main(){ int notas[juizes],cont,media=0,maior=0,menor=0; cout << "\n\t Prova de Atletismo\n"; cout << "Digite 5 notas entre 0 a 9 para o atleta: \n"; //armazenar valores for(cont=0;cont<juizes;cont++){ //if(notas[cont]>10){ cin >> notas[cont]; } //media for(cont=0;cont<juizes;cont++){ media+=notas[cont]; } media=media/juizes; cout << "\nA media do atleta foi de: " << media; //maior for(cont=0;cont<juizes;cont++){ if(notas[cont]>maior){ maior=notas[cont]; } } //menor menor=maior; for(cont=0;cont<juizes;cont++){ if(notas[cont]<menor){ menor=notas[cont]; } } cout << "\nA sua menor nota foi: " << menor << " e a sua maior nota foi: " << maior; //porcentagem de repetidos int nota_alta=8,repet=0,porcen=0; for(cont=0;cont<juizes;cont++){ if(notas[cont]>=nota_alta){ repet++; } porcen=repet*20; //5 notas e igual a 100%, então cada nota e 20% } cout << "\nA porcentagem de notas iguais ou superiores a 8 e: " << porcen<< "%"; //atribuição de notas for(cont=0;cont<juizes;cont++){ if(notas[cont]>=nota_alta){ cout << "\nO juiz numero " << cont << " deu a nota: " << notas[cont]; } } }
-
@vangodp E isso mesmo, eu que digitei errado. E isso que eu não to entendendo muito bem, pode me dar um exemplo se não for incomodo?
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