Pages: 1 ... 8 9 [10]   Go Down
Author Topic: Aiuto per compilazione STK500boot.c  (Read 6005 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 79
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uh che casino:

non basta fare una cosa tipo:
#define BOTTONE PINA0

e poi usare gli
IF (BOTTONE   &=   ~(1<<BOTTONE))   // condizione bottone low
IF (BOTTONE   |=   (1<<BOTTONE))   // condizione bottone high

è sbagliato?

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 328
Posts: 22762
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

è sbagliato?
Mettiamola così: !corretto
Logged


0
Offline Offline
Faraday Member
**
Karma: 46
Posts: 5881
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-yell smiley-yell smiley-yell
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 79
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Questo è essere diplomatici smiley-grin
Logged

0
Offline Offline
Shannon Member
****
Karma: 131
Posts: 10468
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

prima di tutto devi settare il pin come input

poi leggi se il pin è 0 o 1

poi fai quello che devi fare.

cerca "port manipulation" sul playground!
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9458
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ecco la modifica pronta all'uso (testata).
Non mi è chiaro come usi il pulsante perché dici che hai le pullup e che chiude verso Vdd, in questo caso ci deve essere una pull down.
Comunque non è un problema basta che nella if metti il confronto verso 0 logico oppure 1 logico a seconda di come chiude il pulsante.
Io ho impostato che per attivare il bootloader il pin PA0 deve essere a stato logico 1 come dovrebbe essere per la configurazione che hai descritto.
Attenzione che dopo aver caricato il nuovo bootloader non vedrai nessun led lampeggiare perché non trovando il pulsante premuto viene ceduto subito il controllo al programma utente che non c'è, quindi apparentemente il processore sembra non fare nulla.

Code:

// codice da inserire subito prima della while (boot_state)
// Setto PA0 come input
DDRA = 0b00000000;
// Attivo pullup interna up su PA0 (usato per il test)
// PORTA = 0b00000001; 

  if ((PINA & 0b00000001) == 1) // inserire la condizione logica desiderata (1 o 0)
   {
while (boot_state==0)
{
while ((!(Serial_Available())) && (boot_state == 0)) // wait for data
{
_delay_ms(0.001);
boot_timer++;
if (boot_timer > boot_timeout)
{
boot_state = 1; // (after ++ -> boot_state=2 bootloader timeout, jump to main 0x00000 )
}
#ifdef BLINK_LED_WHILE_WAITING
if ((boot_timer % 7000) == 0)
{
//* toggle the LED
PROGLED_PORT ^= (1<<PROGLED_PIN); // turn LED ON
}
#endif
}
boot_state++; // ( if boot_state=1 bootloader received byte from UART, enter bootloader mode)
}
   }
  else boot_state = 0;

Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 79
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie astrobeed,
compilandolo ho una sfilza di
Code:
error: stray '/240' in program
credo sia un problema di codifica,cosa devo fare?
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 79
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Risolto ho eliminato tutti gli spazi.. ora provo smiley

EDIT:
ho provato: funziona molto bene... bisogna tener premuto il pulsante per caricare lo sketch sui moduli..ma funziona smiley
« Last Edit: May 28, 2012, 09:21:20 am by Giorgio » Logged

0
Offline Offline
Shannon Member
****
Karma: 131
Posts: 10468
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

metti un pulsante on/off e risolvi il problema di teenre premuto, però poi non lamentarti se lo lasci acceso e si blocca di nuovo smiley
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: 1 ... 8 9 [10]   Go Up
Jump to: