Torna Indietro   Spazioaereo.it Forum > Categoria Meccanica ed Elettronica > Elettronica


Benvenuto in Spazioaereo.it Forum.
Non risulti registrato al forum oppure non ti sei loggato. Se sei nuovo ti invitiamo a leggere il regolamento del forum.
È necessario registrarsi oppure eseguire il login prima di poter partecipare attivamente alla discussioni! Se hai perso la password clicca qui.
Attenzione: se eri già registrato sul forum di baricentro.org, per accedere la prima volta su questo forum devi prima seguire questa procedura.

Elettronica Spazio dedicato alla progettazione e realizzazione di circuiti elettronici per uso modellistico o aeronautico.

Rispondi
 
LinkBack Strumenti Discussione Visualizzazione
Vecchio 04-10-2010, 11:53   #1 (permalink) Top
Nuovo iscritto
 
Data Registrazione: Aug 2008
Messaggi: 7
Predefinito oscilloscopio con pic

Salve a tutti,

il mio obbiettivo è ottenere un oscilloscopio che lavori anche in modalità XY.

Torniamo all'argomento:

ho utilizzato un PIC18F4550 con quarzo da 20MHz e GLCD 128x64 della Wintek mod. W12864A.

Sono riuscito a farlo funzionare ma ha una banda passante ridicola.

Ero partito da uno stralcio di codice trovato in rete per il 16F877A e quarzo da 4MHz ma era come si può immaginare ancora più lento.

Ho provato a mandare un segnale sinusoidale ma dopo pochi Hz, anche modificando (per ora via sw) il 'Sweep rate factor' non ottenevo miglioramenti.

Stavo pensando di bypassare la libreria dell'ADC facendone una dedicata per aumentare la velocità di campionamento ma non sò se basterà.

Credo che occorra lavorare anche sul sincronismo e sulle variabili (word anzichè float).

Qualche consiglio?

Io ho messo un pò di codice funzionante spero che possa essere da stimolo per uno sviluppo in comune.

Ho scelto questo pic perchè ha, da data sheet un campionamento più veloce rispetto all'877a e per l'USB per evoluzioni future.

ciao

Antonio





Codice:
 

program oscope_4550_20mhz

'Microprocessor: 18F4550

'Xtal 20MHz no PLL

'pbaden=off

'This program is designed to make a simple oscilloscope.

'with GLCD W12864A

'Mikrobasic 7.0.2

'--------------------------------------------------------------------

symbol DDRA=TRISA

symbol DDRB=TRISB

symbol DDRC=TRISC

symbol DDRD=TRISD

symbol ControlPort=PortB

symbol DataPort=PortD

symbol Channel=0

dim

X as integer

Y, K, Sr, Offset as float

Xmin, Xmax, Ymin, Ymax as float

XX, YY as short

GLCD_VSize as byte

GLCD_HSize as byte

const   'for GLCD Wintek 128x64 W12864A

cs1=2

cs2=3

rs=4

rw=5

rst=7

en=6

sub procedure Initialize

ADCON1=0x0E 'A0 as analog input

DDRA=0x01 'ADC on A0

DDRB=0x00

DDRC=0x00

DDRD=0x00

glcd_Init(ControlPort,cs1,cs2,rs,rw,rst,en,DataPort)

Glcd_Fill(0) 'Clear display

end sub

main:

Initialize

'User defined

'----------------------

GLCD_VSize=63

GLCD_HSize=127

Sr=1 'Sweep rate factor

Xmin=0.0

Ymin=0.0

K=10.0 'ADC bits

'----------------------

Xmax=float(GLCD_HSize)*Sr

Offset=float (GLCD_VSize)/2.0 'Bottom of GLCD = 0V

Ymax=pow (2.0, K)-1.0 'Top of GLCD = 5V

Display:

Display:

'carico in ram

for X=integer(Xmin) to integer(Xmax) step 1

    Y=float(Adc_Read(Channel))+ Offset

    YY=short((float (GLCD_VSize)/(Ymax-Ymin))*(Ymin-Y))

    YP[x]=YY

    XX=short((float (GLCD_HSize)/(Xmax-Xmin))*(float(X)-Xmin))

    XP[x]=XX

next X

'visualizzo su glcd

for X=integer(Xmin) to integer(Xmax) step 1

Glcd_Dot(XP[x],YP[x],1)

next X

Glcd_Fill(0)

Goto Display

end.
aduri è offline   Rispondi Con Citazione

Rispondi

Strumenti Discussione
Visualizzazione

Regole di Scrittura
Tu non puoi inviare nuove discussioni
Tu non puoi inviare risposte
Tu non puoi inviare allegati
Tu non puoi modificare i tuoi messaggi

Il codice BB è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Attivato


Discussioni Simili
Discussione Autore Discussione Forum Risposte Ultimo Messaggio
Un oscilloscopio gratuito con la scheda audio lombafly Impianti elettronici e meccanici 9 03-03-2010 19:08


Tutti gli orari sono GMT +1. Adesso sono le 01:12.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
SEO by vBSEO