Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

generare segnale PWM PIC 16f877a c++ *****!

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

-1
voti

[1] generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto Utentem4tt3o » 14 feb 2012, 10:38

Ciao a tutti, scusate se non ho cercato bene e l'argomento già esiste, dobbiamo generare un segnale PWM con il PIC 16f877a per pilotare una ventola in dc, in c++ con il programma PIC c compiler.

Non riusciamo proprio a generare questo segnale, vi prego datemi una mano con il programma, ditemi se è sbagliato, e dove. magari c'è qualche buon anima che lo riscrive? Il mio livello di c++ è pari a zero, sto in 5 e mi serve come progetto di tdp se no mi mette il debito, a me al mio gruppo e al 95% della classe.

PWM freq. 10.000 duty 80

L'oscillatore è a 20mhz

Ho copiato questa istruzione dal professore:

Timer> timer 2 enable
other > ccp1 > PWM freq. 10.000 duty 80

timer 1 (t2_div_by_4,70,1)
set_pwm1_duty((int16)140)

setup timer 2

setup_ccp1

while_true{
delay_ms 2000
set_pwm1_duty((int16)99)
delay_ms 2000
set_pwm1_duty((int16)198)
delay_ms 2000
set_pwm1_duty((int16)297)
delay_ms 2000
set_pwm1_duty((int16)393)

E ho copiato il programma, ma non funziona! perché?

Datemi una mano grazie!

Codice: Seleziona tutto

#include <main.h>
#include "na_lcd4x20_D2Free.c"
#define LED PIN_D3
#define BUZZER PIN_D2


float volt,val,T;


void Beep(void) {
output_high(BUZZER);
delay_ms(100);
output_low(BUZZER);
}
// --- End Beep Buzzer

// --- Prova led e beep di sistema
void led_buzz(void){
int j;
for(j=0; j<=4; j++) {
delay_ms(400);
output_high(LED);
Beep();
delay_ms(400);
output_low(LED);
}
}
// --- End Prova led e beep di sistema

// --- Presentazione progetto in avvio
void presentation(void){
lcd_putc("\f"); //Pulisco il display
lcd_gotoxy(2,1);
lcd_putc("PIC16F877A 20 MHz");
beep(); //Avviso start
delay_ms(500);
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("R. C. D. M.");
delay_ms(500);
lcd_gotoxy(1,3);
lcd_putc("1 canale input ADC");
delay_ms(500);
lcd_gotoxy(3,4);
lcd_putc("canale AN0");
led_buzz(); //Avviso start
delay_ms(500);
}

void Testata(void){

lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("Val: volt:");
lcd_gotoxy(3,2);
lcd_putc("T:");
}


void main()
{
float volt,val,T;

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_4,124,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(512);
setup_comparator(NC_NC_NC_NC);

output_low(PIN_D2);
output_low(PIN_D3);

lcd_init();
delay_ms(100);

Presentation();
delay_ms(1000);

Testata();


delay_ms(50);
delay_ms(2000);
set_pwm1_duty((int16)99);
delay_ms(2000);
set_pwm1_duty((int16)198);
delay_ms(2000);
set_pwm1_duty((int16)297);
delay_ms(2000);
set_pwm1_duty((int16)393);
delay_ms(2000);
set_pwm1_duty((int16)99);
delay_ms(2000);
set_pwm1_duty((int16)198);
delay_ms(2000);
set_pwm1_duty((int16)297);
delay_ms(2000);
set_pwm1_duty((int16)393);


//ripete il ciclo infinite volte
while(true){
set_adc_channel(0); //seleziona il canale 0 dell'ADC(AN0)
delay_us(50);
val=read_adc();//leggo valori registrati
volt=(float)val*0.0048828;//ampiezza segnale di ingresso = valore ADC x risoluzione
T = (volt*100)/5;
lcd_gotoxy(5,1);
printf(lcd_putc,"%.2f ",val);
lcd_gotoxy(17,1);
printf(lcd_putc,"%.2f",volt);
lcd_gotoxy(5,2);
printf(lcd_putc,"%2.2f",T);
if(volt>4){
output_high(buzzer);
delay_ms(200);
output_low(buzzer);
}
}




}
Ultima modifica di Foto UtenteTardoFreak il 14 feb 2012, 10:57, modificato 2 volte in totale.
Motivazione: Usare i tag [code] e [/code] per inserire il codice.
Avatar utente
Foto Utentem4tt3o
12 2
 
Messaggi: 33
Iscritto il: 10 ago 2010, 19:56

0
voti

[2] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto UtentePaolino » 14 feb 2012, 10:55

Caro Foto Utentem4tt3o, la prima cosa da fare è leggere con estrema attenzione il datasheet del dispositivo. Ce l'avete? Se no, scaricatelo e leggete il capitolo che riguarda il PWM. Se non basta, guardate anche questo articolo che può aiutare.

Poi: mi sembra che stiate usando il C (se non ho visto male) e non il C++. Esatatmente, quale compilatore usate?

Ciao.

Paolo.

P.S. Il codice sorgente va racchiuso tra i tag CODE, come indicato nelle istruzioni d'uso del forum!
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

-1
voti

[3] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto Utentem4tt3o » 14 feb 2012, 14:29

Ciao Paolo grazie della risposta. Il datasheet lo abbiamo insieme a delle board con il pick display e tutti i relativi componenti e lo programmiamo con pick kit 3. I fogli che spiegano come generare il PWM li abbiamo e seguiti alla lettera il programma non funziona. Il linguaggio che utilizziamo è c++ e come software PIC c compiler. In una classe composta da quasi 20 persone divisa in 6 gruppi solo 1 è riuscito a farlo perché sono i classici lecchini, il programma glielo ha fatto il professore e non lo passano. Neanche possiamo chiedere aiuto al prof perché come già successo ce lo spiega e ci chiede naturalmente le cose e noi non sappiamo rispondere, non abbiamo le basi del 3 e 4 ci dobbiamo arrangiare a scopiazzare qua e la per questo motivo l'unica soluzione è farsi aiutare su un forum di elettronica.
Avatar utente
Foto Utentem4tt3o
12 2
 
Messaggi: 33
Iscritto il: 10 ago 2010, 19:56

0
voti

[4] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto UtentePaolino » 14 feb 2012, 15:31

Mah, c'è un detto che recita: "Aiutati che Dio ti aiuta". Oltre al suggerimento del datasheet, mi sono permesso di indicarti anche un articolo. Lo avete letto? Sai cos'è un segnale PWM? Sai cosa significa duty-cycle pari all'80%?

Se non hai basi di C (ribadisco: il codice che hai messo non è in C++), come pretendi di passare la prova? Non credi sia inutile che qualcuno ti dia il compito bello e pronto senza averci capito nulla?

Più tardi leggo il codice, ma devi rispondere alle domande che ti ho posto, altrimenti picche.

Ciao.

Paolo.

P.S. Sono stato a scuola anch'io e ho visto i lecchini, certo. Ma anche tanti ragazzi volenterosi e studiosi così come pure tanti parassiti...
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

-1
voti

[5] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto Utentem4tt3o » 14 feb 2012, 17:20

Non ho letto l'articolo perché ero con l'iphone in classe quando ti ho risposto dopo lo leggo.

In via teorica quando il professore ha spiegato l'argomento so cosa è un PWM, so co sos'è il duty cycle, il problema è il codice!

In 3° abbiamo fatto programmazione in c in sistemi e facevamo programmi semplici, ma ci ha spiegato tutte le basi, poi il prof è andato in pensione e in 4° è arrivato un altro professore di sistemi e programmazione in c non l'abbiamo più fatta!

Quest'anno in 5° a sistemi ancora non abbiamo fatto programmazione, stiamo facendo i trasduttori a pari passo con il programma di elettronica. Ora come materia agli esami è uscito sistemi, e cominceremo a farla 2 ore a settimana.

Invece con tdp abbiamo sbagliato, perché il prof ha dato per scontato che sapevamo fare certe cose e solo ora si è reso conto che su certe cose stiamo a zero!

Calcola che faccio il 5° indirizzo elettronica e telecomunicazioni, e il transistor è stato spiegato quest'anno quando è programma di 3° (Io già lo sapevo il funzionamento).

Il professore di tdp se gli chiediamo aiuto lui viene ce lo spiega ma quando ci fa le domande non sappiamo rispondere, perché non abbiamo le giuste competenze e si incazza (Abbiamo sbagliato anche noi a non dirglielo subito).

Ora che sto in 5° devo fare 21 anni (Sono stato bocciato 2 volte) non ho ne il tempo ne la voglia di imparare il linguaggio c, voglio solo prendere questo benedetto diploma e stop.

Il progetto che dobbiamo fare in tdp è suddiviso in 3 fasi, la prima fase bisognava creare un modulo che leggeva la temperatura ambientale, il 2° step quello attuale generare un segnale in PWM e fare girare una ventola, 3° e ultimo step fare girare la ventola in base alla temperatura che varia da 15 a 30 gradi se non erro, sotto i 30 gradi ventola ferma e sopra i 30 gradi ventola ferma.

Io nella pratica sono il più bravo di tutto l'istituto, ma nella pratica se mi parli di software è arabo!
Siamo stati penalizzati con il 1° step, nonostante avevo fatto la parte hardware funzionante il 1° giorno in 30 min, ma mancava la parte software che leggeva la temperatura, leggeva in maniera sbagliata, c'èrano problemi di codice (perché copiato) e ci ha messo come voto di laboratorio 5, ora dobbiamo consegnare entro fine mese il 2° step, per il 3° step non c'è problema sono riuscito ad avere il codice perfettamente funzionante, anche simulandolo funziona perfettamente, ma se non facciamo il 2° step e non glielo facciamo vedere e gli portiamo il 3° non è stupido capisce che è stato copiato.
Ultima modifica di Foto Utenteadmin il 14 feb 2012, 22:27, modificato 1 volta in totale.
Motivazione: Eliminata inutile citazione integrale del messaggio che precede. Esiste il pulsante Rispondi
Avatar utente
Foto Utentem4tt3o
12 2
 
Messaggi: 33
Iscritto il: 10 ago 2010, 19:56

0
voti

[6] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto UtentePaolino » 14 feb 2012, 22:01

m4tt3o ha scritto:Non ho letto l'articolo perché ero con l'iphone in classe quando ti ho risposto dopo lo leggo.

Quando l'hai letto, vorrei sapere se e cosa hai capito.
m4tt3o ha scritto: Il professore di tdp se gli chiediamo aiuto lui viene ce lo spiega ma quando ci fa le domande non sappiamo rispondere, perché non abbiamo le giuste competenze e si incazza (Abbiamo sbagliato anche noi a non dirglielo subito).

Ora che sto in 5° devo fare 21 anni (Sono stato bocciato 2 volte) non ho ne il tempo ne la voglia di imparare il linguaggio c, voglio solo prendere questo benedetto diploma e stop.

E perché invece non ti sforzi un po' e provi a recuperare le lacune che hai?

m4tt3o ha scritto:Io nella pratica sono il più bravo di tutto l'istituto, ma nella pratica se mi parli di software è arabo!
Siamo stati penalizzati con il 1° step, nonostante avevo fatto la parte hardware funzionante il 1° giorno in 30 min, ma mancava la parte software che leggeva la temperatura, leggeva in maniera sbagliata...

Ma la lettura era il secondo step, non il primo! Come mai siete stati penalizzati lì, quando l'hardware, a tuo dire, era OK?
m4tt3o ha scritto:c'èrano problemi di codice (perché copiato) e ci ha messo come voto di laboratorio 5

Bravi! Che cosa pensavate vi desse? Forse 5 e lode!

m4tt3o ha scritto:ma se non facciamo il 2° step e non glielo facciamo vedere e gli portiamo il 3° non è stupido capisce che è stato copiato.

Non stento a crederci.

Comunque, vi dò qualche dritta ma senza il vostro impegno non se ne esce, quindi discorsi del tipo:
m4tt3o ha scritto:non ho ne il tempo ne la voglia di imparare il linguaggio c

non li voglio leggere più, altrimenti il post si chiude con questa mia risposta. Non ci metto tanto a chiudere e a mettere il tutto nel cestino (Foto Utenteadmin, dovremmo mettere anche lo sciacquone, non trovi? A volte potrebbe essere utile :mrgreen: ), perché se tu non hai né tempo né voglia di fare il tuo dovere, cosa credi? Che forse dobbiamo farlo noi per te? :shock: [-X

Per tornare sul probema, mi sembra che il codice che avete scritto è per CCS C Compiler, giusto? Questa è una informazione necessaria che dovete verificare! Se sì, credo che vi manchino un po' di comandi che iniziano con il simbolo #, come ad esempio Fosc e la tabella dei fuses (noti anche come configuration bits. Se non mettete quei comandi non potrà mai funzionare!

Poi, dici che non funziona nulla, ma devi essre più chiaro e preciso: cosa succede quando accendete la scheda? Siete davvero sicuri che l'hardware sia a posto? Sapete/potete fare delle misure con l'oscilloscopio?

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[7] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto Utenteadmin » 14 feb 2012, 22:40

Foto Utentem4tt3o, se stai cercando un forum in cui ci sia qualcuno che faccia il lavoro che devi fare tu, gratuitamente, hai sbagliato forum.
Chi risponde nel forum lo fa per creare una conoscenza che deve essere utilizzata da tutti i frequentatori del forum. E' questo il motivo della sua disponibilità, non l'impiego del tempo per fare il lavoro di uno sconosciuto, cui non interessa nemmeno imparare, ma solo superare il suo ostacolo.
Avatar utente
Foto Utenteadmin
196,6k 9 12 17
Manager
Manager
 
Messaggi: 11950
Iscritto il: 6 ago 2004, 13:14

-1
voti

[8] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto Utentem4tt3o » 15 feb 2012, 0:29

admin ha scritto:Foto Utentem4tt3o, se stai cercando un forum in cui ci sia qualcuno che faccia il lavoro che devi fare tu, gratuitamente, hai sbagliato forum.
Chi risponde nel forum lo fa per creare una conoscenza che deve essere utilizzata da tutti i frequentatori del forum. E' questo il motivo della sua disponibilità, non l'impiego del tempo per fare il lavoro di uno sconosciuto, cui non interessa nemmeno imparare, ma solo superare il suo ostacolo.


Si hai ragione, ma infatti non cerco una persona che mi fa tutto il lavoro, ma soltanto sta parte benedetta del PWM, che sono massimo 10 righe di codice.

Una persona capace per fare questo lavoro ci mette 5 minuti, è un pezzetto di codice, è come se sai montare un computer intero, ma non sei capace a collegare il processore! Allora chiedi aiuto su come montare il processore, e chi da una mano spiega passo passo al meglio come fare, metti il processore nel giusto verso, poi prepara il dissipatore metti la pasta termoconduttiva giusta quantità etc etc.
Avatar utente
Foto Utentem4tt3o
12 2
 
Messaggi: 33
Iscritto il: 10 ago 2010, 19:56

-1
voti

[9] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto Utentem4tt3o » 15 feb 2012, 0:47

Usa il tasto RISPONDI, non usare CITA

Paolo ho letto e ti ho già detto in precedenza che so cosa è un PWM, il prof di tdp ci ha fatto 3 ore di lezione per spiegarlo, ma non basta sapere cosa è, cosa fa, bisogna sapere le istruzioni per generarlo e mettere i giusti valori è questo il problema!

No non ho tempo, per imparare le basi del c ci abbiamo messo 1 anno (3°), io mi alleno 5 giorni a settimana, boxe a livello agonistico, tutti i pomeriggi dalla 16.30 alle 19.00, esco da scuola alle 14, il venerdi esco da scuola alle 16 quindi vado direttamente in palestra, il sabato mattina sto facendo il corso da bagnino, sabato pomeriggio capita spesso di fare qualche servizio di croce rossa, ragazza, uscire con gli amici, quando esco da scuola dalle 14 fino alle 16 qualcosa devo studiare, ora trovami tu il tempo per mettermi a studiare tutto il linguaggio c, se mi trovi il tempo per farlo, ti pago una cena! A me serve soltanto la parte di codice del PWM, stop, ne piu ne meno, e mi è venuta l'idea di chiedere in un forum di elettronica, nella sezione microcontrollori, qualche fenomeno ci starà no?

Le teoria è una cosa, la pratica è un'altra, difatti copiato identico spiccicato mentre lo spiegava non funziona e a lui si, mistero.

Siamo stati penalizzati nel 1° step perché fatta la parte hardware andava collegata al pin rb0 del PIC, e andava fatto il programma che faceva il rapporto e in base alla tensione dava la temperatura sul display. I calcoli del programma erano errati e sballava invece di dare 25 gradi per esempio ne dava 170 e cosi via. I calcoli anche quelli copiati da un altro programma che funzionava, abbiamo fatto copia e incolla da PIC c compiler stesso e non andava, ho provato la parte hardware su un'altra board e funzionava.

Comandi fosc e fuses mai sentiti, in prof ha generato un PWM con queste 5 righe:

Codice: Seleziona tutto
set_pwm1_duty((int16)140)

setup timer 2

setup_ccp1

while_true{
delay_ms 2000
set_pwm1_duty((int16)99)
delay_ms 2000
set_pwm1_duty((int16)198)
delay_ms 2000
set_pwm1_duty((int16)297)
delay_ms 2000
set_pwm1_duty((int16)393)


So utilizzare l'oscilloscopio, quando accendo la scheda con il PIC programmato non fa assolutamente niente, ne beep, il display non si inizializza, niente di niente! Si accende solo il led di alimentazione e il display.

Mentre se metto il programma del 1 step in parte funzionante, si accende e qualcosa segna, mentre se metto il programma del 3 step funziona tutto alla perfezione!

Sono stato io a dire che mi serviva per scuola, scommetto che se non lo dicevo non mi facevi tutte queste domande e interrogazioni e mi dicevi dove c'è l'intoppo, dove sbaglio.

Paolo poi non pensare che la buona volontà non ce la metto, è da novembre che stiamo fermi, stiamo in 4 nel gruppo, ci siamo visti svariate volte a casa mia per riuscire a tirare su qualcosa, siamo stati una domenica dalla mattina fino al pomeriggio a cercare di fare generare questo benedetto PWM, niente.

A tdp chiediamo, ci facciamo aiutare, proviamo a fare il programma in base alle informazioni che abbiamo, prendiamo il libro con le lezioni di tdp che spiega passo passo come fare, ma niente!

Ora ci siamo ridotti a guardare il monitor e i video su youtube al laboratorio, sulla pennetta USB ho almeno 50 cartelle (Le ho lasciate) di ogni programma che abbiamo provato a generare questo PWM. In questi casi si dovrebbe chiedere al professore, ma per questa cosa no, è peggio!

Questa mattina dal laboratorio ho postato la discussione, diciamo che un'aiuto qui è l'ultima arma che abbiamo, non io, ma esattamente 17 persone! E non solo noi 17 persone, ma anche l'altra sezione di istituto con indirizzo elettronica e telecomunicazione, sempre classe 5°, 18 persone, sono ferme tutte e 18. Almeno nella classe nostra 3 persone il programma ce l'hanno, nell'altra classe neanche 1.

Quindi ora vado a pensare dove sta il problema, nostro, dei professori, della scuola, o tutte e 3 le cose messe in sieme.

Paolo se non ti va di darmi una mano scrivilo.
Ultima modifica di Anonymous il 15 feb 2012, 1:10, modificato 2 volte in totale.
Motivazione: eliminata citazione integrale.
Avatar utente
Foto Utentem4tt3o
12 2
 
Messaggi: 33
Iscritto il: 10 ago 2010, 19:56

4
voti

[10] Re: generare segnale PWM PIC 16f877a c++ *****!

Messaggioda Foto UtentePaolino » 15 feb 2012, 14:08

:shock:
Scusami, ma sono sbalordito! Se hai così tanti impegni, perché vai a scuola?!?!? Potresti impegnare tutto il tuo tempo per allenarti, boxe, bagnino e quant'altro.
Se invece vuoi ottenere un diploma, il tempo lo devi trovare tu: o sacrifichi qualche attività extra-scolastica oppure decidi di togliere ore ai pasti e al sonno. Le ore a disposizione sono 24 ogni giorno, non sta a me dirti quale attività sia più giusta per te e quanto tempo dedicarle.

Scusami, ma se non sai nulla di C e nemmeno di microcontrollori, come pensi che possiamo fare noi? Per i miracoli è meglio rivolgersi altrove...

Ti ho detto che il programma manca di fuses e di direttive (comandi impostati con il simbolo #). Se non li hai mai sentiti forse da qualche parte li potrai leggere: appunti, note, libri. Prova ad approfondire.
Tengo a precisare inoltre che la porta RB0 non è un ingresso analogico ma digitale. Forse il progetto (step 2) prevedeva che collegaste la sonda all'ingresso RA0/AN0, ma potrei anche sbagliarmi.

Il codice che hai indicato nell'ultimo post manca di simboli punto e virgola (;) alla fine di ogni costrutto. Il C lo vuole! Quindi, non si scrive:

Codice: Seleziona tutto
set_pwm1_duty((int16)140)


ma

Codice: Seleziona tutto
set_pwm1_duty((int16)140);


Inoltre questo passaggio:

Codice: Seleziona tutto
setup timer 2

setup_ccp1

non ha alcun senso, non si tratta di nessuna istruzione o funzione C.

Infine non mi hai detto nulla circa il compilatore: è il CCS C Compiler?

Qui non è questione di voler aiutare o no: mi sembra che tu voglia il progetto fatto e finito, il tuo unico sforzo sarà quello di consegnarlo al prof. E poi? Fra qualche settimana cosa fai? Torni qui a "mendicare" un progetto per l'esame di maturità o quant'altro? Torno a ripetere: aiutati che Dio ti aiuta. Se non ci metti l'impegno per una questione che riguarda la tua attività scolastica, come pensi che possiamo/dobbiamo farlo noi?


Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti