boa noite não consigo copilar essa programação alguen poderia me ajudar .arduino uno

#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>

.include "atmega328def.inc"; diretiva de inclusao de arquivo de definição de nomes para registradores
.include "atmega328lib.inc"; diretiva de inclusão de arquivo de biblioteca com rotinas pré -programadas

setup: ; nome da linha (rótulo ou label)
sbi ddrd, 2 ; D2->saida lógica (pino2)
sbi ddrd, 3 ; D3->saida lógica (pino3)
sbi ddrd, 4 ; D4->saida lógica (pino4)
sbi ddrd, 5 ; D5->saida lógica (pino5)
sbi ddrb, 0 ; B0->saida lógica (pino8)
sbi ddrb, 1 ; B1->saida lógica (pino9)
sbi ddrb, 2 ; B2->saida lógica (pino10)
sbi ddrb, 3 ; B3->saida lógica (pino11)
call defesa; chama rotina de defesa (servo em 0 graus)
cpi w, '0' ; compara o valor do reg trabalho w (r16) com o caracter zero
brne pc + 2 ;
call parado ; chama rotina de robo parado
cpi w, '1' ; compara o valor do reg trabalho w (r16) com o caracter zero
brne pc + 2 ;
call avanco ; chama rotina de avanco do robo
cpi w, '5' ; compara o valor do reg trabalho w (r16) com o caracter zero
brne pc + 2 ;
call reverso ; chama rotina de reversao do robo
cpi w, '3' ; compara o valor do reg trabalho w (r16) com o caracter zero
brne pc + 2 ;
call direita ; chama rotina de de girar o robo para direita
cpi w, '7' ; compara o valor do reg trabalho w (r16) com o caracter zero
brne pc + 2 ;
call esquerda ; chama rotina de de girar o robo para esquerda
cpi w, 'A' ; compara o valor do reg trabalho w (r16) com o caracter zero
brne pc + 2 ;
call ataque ; chama rotina de ataque (servomotor em 90 graus)
cpi w, 'B' ; compara o valor do reg trabalho w (r16) com o caracter zero
brne pc + 2 ;
call defesa ; chama rotina de defesa (servomotor em 0)


parado: ; nome da rotina
; motores direita
sbi portd, 2 ; D2 (pino2) em H
sbi portd, 3 ; D3 (pino3) em H
sbi portd, 5 ; D5 (pino5) em H
sbi portd, 4 ; D4 (pino4) em H
; motores esquerda
sbi portb, 0 ; B0 (pino8) em H
sbi portb, 1 ; B1 (pino9) em H
sbi portb, 3 ; B3 (pino11) em H
sbi portb, 2 ; B2 (pino10) em H

avanco: ; nome da rotina
; motores direita
cbi portd, 2 ; D2 (pino2) em L
sbi portd, 3 ; D3 (pino3) em H
sbi portd, 5 ; D5 (pino5) em H
cbi portd, 4 ; D4 (pino4) em L
; motores esquerda
cbi portb, 0 ; B0 (pino8) em L
sbi portb, 1 ; B1 (pino9) em H
sbi portb, 3 ; B3 (pino11) em H
cbi portb, 2 ; B2 (pino10) em L

reverso: ; nome da rotina
; motores direita
sbi portd, 2 ; D2 (pino2) em H
cbi portd, 3 ; D3 (pino3) em L
cbi portd, 5 ; D5 (pino5) em L
sbi portd, 4 ; D4 (pino4) em H
; motores esquerda
sbi portb, 0 ; B0 (pino8) em H
cbi portb, 1 ; B1 (pino9) em L
cbi portb, 3 ; B3 (pino11) em L
sbi portb, 2 ; B2 (pino10) em H

direita: ; nome da rotina
; motores esquerda
cbi portb, 0 ; B0 (pino8) em L
sbi portb, 1 ; B1 (pino9) em H
sbi portb, 3 ; B3 (pino11) em H
cbi portb, 2 ; B2 (pino10) em L
; motores direita
sbi portd, 2 ; D2 (pino2) em H
cbi portd, 3 ; D3 (pino3) em L
cbi portd, 5 ; D5 (pino5) em L
sbi portd, 4 ; D4 (pino4) em H
ret ; retorna da chamda da rotina

esquerda: ; nome da rotina
; motores direita
cbi portd, 2 ; D2 (pino2) em L
sbi portd, 3 ; D3 (pino3) em H
sbi portd, 5 ; D5 (pino5) em H
cbi portd, 4 ; D4 (pino4) em L
; motores esquerda
sbi portb, 0 ; B0 (pino8) em H
cbi portb, 1 ; B1 (pino9) em L
cbi portb, 3 ; B3 (pino11) em L
sbi portb, 2 ; B2 (pino10) em H
ret ; retorna da chamada da rotina

defesa: ; nome da rotina
sbi portb, 4 ; pulso em H
ldi w, 1 ; carrega o registra w com o valor 1
call delay_ms ; chama rotina de pausa em ms com o valor de w
cbi portb, 4 ; pulso em L
ldi w, 19 ; carrega o registra w com o valor 19
call delay_ms ; chama rotina de pausa em ms com o valor de w
sbi portb, 4 ; pulso em H
ldi w, 1 ; carrega o registra w com o valor 1
call delay_ms ; chama rotina de pausa em ms com o valor de w
cbi portb, 4 ; pulso em L
ldi w, 19 ; carrega o registra w com o valor 19
call delay_ms ; chama rotina de pausa em ms com o valor de w
ret ; retorna da chamada da rotina

ataque: ; nome da rotina
sbi portb, 4 ; pulso em H
ldi w, 1 ; carrega o registra w com o valor 1
call delay_ms ; chama rotina de pausa em ms com o valor de w
ldi w, 200 ; carrega o registra w com o valor 200
call delay_us ; chama rotina de pausa em ms com o valor de w
ldi w, 200 ; carrega o registra w com o valor 200
call delay_us ; chama rotina de pausa em ms com o valor de w
ldi w, 100 ; carrega o registra w com o valor 100
call delay_us ; chama rotina de pausa em ms com o valor de w
cbi portb, 4 ; pulso em L
ldi w, 18 ; carrega o registra w com o valor 18
call delay_ms ; chama rotina de pausa em ms com o valor de w
ldi w, 200 ; carrega o registra w com o valor 200
call delay_us ; chama rotina de pausa em ms com o valor de w
ldi w, 200 ; carrega o registra w com o valor 200
call delay_us ; chama rotina de pausa em ms com o valor de w
ldi w, 100 ; carrega o registra w com o valor 100
call delay_us ; chama rotina de pausa em ms com o valor de w
sbi portb, 4 ; pulso em H
ldi w, 1 ; carrega o registra w com o valor 1
call delay_ms ; chama rotina de pausa em ms com o valor de w
ldi w, 200 ; carrega o registra w com o valor 200
call delay_us ; chama rotina de pausa em ms com o valor de w
ldi w, 200 ; carrega o registra w com o valor 200
call delay_us ; chama rotina de pausa em ms com o valor de w
ldi w, 100 ; carrega o registra w com o valor 100
call delay_us ; chama rotina de pausa em ms com o valor de w
cbi portb, 4 ; pulso em L
ldi w, 18 ; carrega o registra w com o valor 18
call delay_ms ; chama rotina de pausa em ms com o valor de w
ldi w, 200 ; carrega o registra w com o valor 200
call delay_us ; chama rotina de pausa em ms com o valor de w
ldi w, 200 ; carrega o registra w com o valor 200
call delay_us ; chama rotina de pausa em ms com o valor de w
ldi w, 100 ; carrega o registra w com o valor 100
call delay_us ; chama rotina de pausa em ms com o valor de w
ret ; retorna da chamada da rotina

Exibições: 193

Responder esta

Respostas a este tópico

Boa noite VRG, (se não gosta que te chame pelas iniciais, avise),

Por favor não cole código na área de texto do tópico.

fica poluído e perde caractere e formatação.

Remova o que vc postou e anexe como arquivo clicando no

pequeno clip acima da tela.

RV mineirin

pode sim me chamar de vrg laboratorio_de_garagen.ino  

nao consigo copilar poderiam me ajudar desde ja obrigado 

Boa noite,

Estude, entenda e faça testes com os programas de demonstação:

Introducing Circuit Playground

https://learn.adafruit.com/introducing-circuit-playground?view=all

Esse programa está em ASM (linguagem de máquina).

Para ser um .ino deveria estar em C/C++.

Quando é puro ASM, que é o caso, deve ser um .S

Talvez seja necessário usar as diretivas e sintaxe do GCC para Assembly.

Exemplo:

void setup() {
   Serial.begin(250000);

  uint8_t value = 140;

   __asm__ __volatile__(
     "clc \n\t"//
     "ror %[value0] \n\t"//
     "mov %[result0], %[value0] \n\t"//
     :
     // Output operands
     [result0] "=r" (value) //
     :
     // Input operands
     [value0] "r" (value)
     :
     // Clobbers
  );

  Serial.println(value);

}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço