Show Posts
Pages: [1] 2
1  International / Software / Re: Assembly on: February 13, 2014, 02:09:05 pm
Si è vero, infatti dovrei riuscire a capire cosa fà questo codice per poi scriverlo in arduino!

Grazie

Zini Marco
2  International / Software / Assembly on: February 13, 2014, 02:03:07 pm
Salve,
qualcuno sa magari interpretare il codice assembly che riporto di seguito?

Grazie in anticipo


Code:
;************************************************************
;SMART ALPHA SETTINGS PORT DEFENITIONS
;************************************************************
#DEFINE RFSCK PORTC,4 ;SCK on alpha module
#DEFINE RFSDO PORTC,1 ;SDI on alpha module
#DEFINE RFSEL PORTC,0 ;nSEL on alpha module
#DEFINE IRQIN PORTC,3 ;nIRQ on alpha module
#DEFINE RFFSK PORTC,5 ;FSK on alpha module


;************************************************************


SENDCMD
BCF RFSEL
MOVFW CMD1
CALL DOSENDCMD
SENDCMD8BIT
MOVFW CMD2
CALL DOSENDCMD
BSF RFSEL
RETURN

DOSENDCMD
MOVWF SBYTETEMP
MOVLW .8
MOVWF TEMP
SENDLOOPCMD
RLF SBYTETEMP
BTFSS STATUS,C
GOTO WRITE0
GOTO WRITE1
WRITE0
BCF RFSDO
BCF RFSCK
BSF RFSCK
GOTO SENDDONECMD
WRITE1
BSF RFSDO
BCF RFSCK
BSF RFSCK
GOTO SENDDONECMD

;******************************************************************************
SENDDONECMD

DECFSZ TEMP
GOTO SENDLOOPCMD
BCF RFSCK
RETURN

;******************************************************************************

SENDFSK
MOVWF SBYTETEMP
MOVLW .8
MOVWF TEMP

SENDLOOPFSK
CALL WAITIRQHIGH
CALL WAITIRQLOW
CLRC
RLF SBYTETEMP,F
BTFSS STATUS,C
GOTO WRITE0FSK
GOTO WRITE1FSK

WRITE0FSK
BCF RFFSK
GOTO SENDDONEFSK
WRITE1FSK
BSF RFFSK
GOTO SENDDONEFSK

RETURN

;******************************************************************************

SENDDONEFSK
DECFSZ TEMP
GOTO SENDLOOPFSK
RETURN

;******************************************************************************

WAITIRQLOW
BTFSC IRQIN
GOTO WAITIRQLOW
RETURN

;******************************************************************************

WAITIRQHIGH
BTFSS IRQIN
GOTO WAITIRQHIGH
RETURN
3  International / Hardware / Re: Moduli Radio on: February 05, 2014, 11:37:24 am
Io sto provando ad usarli, ma non riesco a farli funzionare!!! Spero che qualcuno del forum li abbia usati e sappia darmi qualche consiglio...

Grazie
Zini Marco
4  International / Hardware / Moduli Radio on: February 05, 2014, 10:32:36 am
BUongiorno,
qualcuno di voi ha mai utilizzato i moduli radio ALPHA-TX e ALPHA-RX della rfSolution? Sto cercando di farli funzionare ma non ci riesco. Utilizzano un integrati della SiliconLabs rispettivamente Si4021 e Si4320.

Grazie
Marco Zini
5  International / Generale / Re: Comunicazione bluetooth tra due arduino on: August 21, 2013, 03:57:03 pm
Qualcuno ha magari il datasheet del modulo bluetooth jy-mcu, non riesco a trovarlo nel web!

Grazie
Zinim
6  International / Generale / Re: Comunicazione bluetooth tra due arduino on: August 20, 2013, 06:36:59 am
Innanzitutto grazie per la risposta;
avevo già dato un'occhiata a quel topic ma non ho trovato niente che parli esplicitamente di comunicazione via bluetooth tra due o più arduino; al momento ho a disposizione due moduli bluetooth JY-MCU, posso realizzare quanto richiesto con questi moduli?
Grazie
Zinim
7  International / Generale / Comunicazione bluetooth tra due arduino on: August 19, 2013, 04:45:44 pm
salve,
qualcuno sa dirmi se è possibile fare comunicare due arduino tramite bluetooth?

Grazie
Zinim
8  International / Software / Re: Cronometro on: October 19, 2012, 11:51:35 am
il fatto è che il passo successivo del mio progetto sarebbe stato salvare alcuni tempi su una memoria sd usando una shield apposita!!

Stavo pensando se magari fosse possibile creare un oscillatore esterno e collegarlo ad uno dei pin digitali di arduino impostandolo come input e nel programma fare incrementare la variabile ad ogni cambio di stato del pin digitale!?? Per la comunicazione con la decodifica, userei leOS!

secondo te potrebbe essete fattibile??

Grazie
9  International / Software / Re: Cronometro on: October 18, 2012, 03:56:17 pm
ho dato un po' un occhiata al progetto ma mi sembra di capire che questo metodi mi implica di non utilizzare la scheda arduino ma solo il microprocessore!

è così?
grazie
10  International / Software / Re: Cronometro on: October 18, 2012, 03:42:25 pm
ok! grazie
prove e in caso ti faccio sapere

ciao
11  International / Software / Re: Cronometro on: October 18, 2012, 03:14:42 pm
OK!!
Quindi il problema riguarda l'oscillatore che usa arduino!!!

Ti ringrazio per la soluzione cha mi hai proposto soltanto che non ho la più pallida idea di come fare ad attuarle!!
Potresti darmi una mano o uno spunto!

grazie
12  International / Software / Re: Cronometro on: October 17, 2012, 02:27:59 pm
Ho già provato a separare la funzione di incremento da quella di visulizzazione inserendola nel  loop, ma così facendo non aggiorna costantemente tutte le variabili e quindi si sballa il conteggio!!

Ho provato in mille altri modi ma quello che scopro sempre alla fine è che ottengo un cronometro che ogni minuto sballa di 4-5secondi!!!

Non riesco a capire dove sia il problema!!!!
Pultroppo non ho a disposizione un'oscilloscopio per verificare che leOS faccia incrementare effettivamente la variabile ogni 10 millisecondi!!!
13  International / Software / Re: Cronometro on: October 17, 2012, 10:18:36 am
Quindi se tolgo il funzione millis e serial  il clock del mio cronometro dovrebbe essere perfetto?
Grazie
14  International / Software / Cronometro on: October 17, 2012, 09:32:15 am
Ciao
Sto cercando di creare un cronometro visualizzato su 6 display a 7 segmenti comandati da una decodifica BCD/7segmenti in multiplexing.
Per dare il clock di incremento del tempo ho usato la libreria leOS in modo tale che ogni 10 microsecondi incrementi una variabile, più precisamente la variabile dei centesimi di secondo.

Ho realizzato il circuito che funziona perfettamente, però l'incremento dei microsecondi è sballato e non di pochissimo;
per verificare nel programma ho inserito la funzione millis() nel void comandato da leOS in modo da vedere se effettivamente c'è questo errore; facendo questa prova ha effettivamente verificato che c'è un errore nella tempistica, infatti l'incremento non è sempre costante e non è quello che ho impostato su leOS!

Cosa può essere secondo voi??

di seguito vi riporto il programma in questione:

Quote
#include <leOS.h>

leOS schedulatore;

int massa_csec = 2;
int massa_dsec = 3;
int massa_sec1 = 4;
int massa_sec2 = 5;
int massa_min1 = 6;
int massa_min2 = 7;

int a = 8;
int b = 9;
int c = 10;
int d = 11;


int numeri_a[10]={LOW,HIGH,LOW,HIGH,LOW,HIGH,LOW,HIGH,LOW,HIGH}; //array per comunicare con decodifica BCD to 7 segment
int numeri_b[10]={LOW,LOW,HIGH,HIGH,LOW,LOW,HIGH,HIGH,LOW,LOW};
int numeri_c[10]={LOW,LOW,LOW,LOW,HIGH,HIGH,HIGH,HIGH,LOW,LOW};
int numeri_d[10]={LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,HIGH,HIGH};
int num_csec =0;// centesimi di secondo
int num_dsec =0;// decimi di secondo
int num_sec1 =0;// secondi
int num_sec2 =0;// secondi
int num_min1 =0;// minuti
int num_min2 =0;// minuti

void setup(){
  
  pinMode(massa_csec, OUTPUT);
  pinMode(massa_dsec, OUTPUT);
  pinMode(massa_sec1, OUTPUT);
  pinMode(massa_sec2, OUTPUT);
  pinMode(massa_min1, OUTPUT);
  pinMode(massa_min2, OUTPUT);
 
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  
  digitalWrite(massa_csec, HIGH); // situazioni iniziale per multiplexing
  digitalWrite(massa_dsec, HIGH);
  digitalWrite(massa_sec1, HIGH);
  digitalWrite(massa_sec2, HIGH);
  digitalWrite(massa_min1, HIGH);
  digitalWrite(massa_min2, HIGH);
 
 Serial.begin(9600);
 Serial.println("Cronometro");
schedulatore.begin();
schedulatore.addTask(incrementa, 10);

}

void loop(){
if(num_csec>9){
  num_csec=0;
  num_dsec=num_dsec++;
}
if(num_dsec>9){
  num_dsec=0;
  num_sec1=num_sec1++;
}
if(num_sec1>9){
  num_sec1=0;
  num_sec2=num_sec2++;
}
if(num_sec2>5){
  num_sec2=0;
  num_min1=num_min1++;
}
if(num_min1>9){
  num_min1=0;
  num_min2=num_min2++;
}
if(num_min2>9){
  num_min2=0;
}

}
void incrementa(){
 Serial.println(millis());
  num_csec=num_csec++; //incremento centesimi di secondo
digitalWrite(massa_min2, HIGH);            //comandi decodifica in multiplexing per 6 display!
  digitalWrite(a, numeri_a[num_csec]);
  digitalWrite(b, numeri_b[num_csec]);
  digitalWrite(c, numeri_c[num_csec]);
  digitalWrite(d, numeri_d[num_csec]);
  digitalWrite(massa_csec, LOW);
  delay(1);
  digitalWrite(massa_csec, HIGH);
  digitalWrite(a, numeri_a[num_dsec]);
  digitalWrite(b, numeri_b[num_dsec]);
  digitalWrite(c, numeri_c[num_dsec]);
  digitalWrite(d, numeri_d[num_dsec]);
  digitalWrite(massa_dsec, LOW);
  delay(1);
  digitalWrite(massa_dsec, HIGH);
  digitalWrite(a, numeri_a[num_sec1]);
  digitalWrite(b, numeri_b[num_sec1]);
  digitalWrite(c, numeri_c[num_sec1]);
  digitalWrite(d, numeri_d[num_sec1]);
  digitalWrite(massa_sec1, LOW);
  delay(1);
  digitalWrite(massa_sec1, HIGH);
  digitalWrite(a, numeri_a[num_sec2]);
  digitalWrite(b, numeri_b[num_sec2]);
  digitalWrite(c, numeri_c[num_sec2]);
  digitalWrite(d, numeri_d[num_sec2]);
  digitalWrite(massa_sec2, LOW);
  delay(1);
  digitalWrite(massa_sec2, HIGH);
  digitalWrite(a, numeri_a[num_min1]);
  digitalWrite(b, numeri_b[num_min1]);
  digitalWrite(c, numeri_c[num_min1]);
  digitalWrite(d, numeri_d[num_min1]);
  digitalWrite(massa_min1, LOW);
  delay(1);
  digitalWrite(massa_min1, HIGH);
  digitalWrite(a, numeri_a[num_min2]);
  digitalWrite(b, numeri_b[num_min2]);
  digitalWrite(c, numeri_c[num_min2]);
  digitalWrite(d, numeri_d[num_min2]);
  digitalWrite(massa_min2, LOW);
  delay(1);
}

15  International / Hardware / Arduino Due on: October 15, 2012, 11:35:04 am
Qualcuno sa qualcosa su "Arduino Due"

Ciao
Grazie
Pages: [1] 2