Läsa av frekvens via USB - Effektivt eller kast?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Läsa av frekvens via USB - Effektivt eller kast?

Inlägg av Al_Bundy »

Jag håller på läsa utav frekvens via MATLAB igenom USB hos en Arduino. Men problemet är att jag tycker det svajar så mycket i plotten jag plottar ut.
Koden jag har ser ut så här:

Det jag undrar är varför svajar det så mycket. Har detta med hastigheten på min dator att göra? Det kanske inte är så smart att läsa av frekvens via USB på en liten PC som jag har? Den är hyfsat seg. Jag kör ju MATLAB 2016 + Firefox på denna enkla linuxmaskin. CPU är upp på 100%. Är detta orsaken varför min plott ser ut som den gör?

Kod: Markera allt

% Clear
clear;
clc;
% Connect
arduino = arduino('/dev/ttyS101', 'Mega2560');
% Declare input and output
configurePin(arduino,'D12','DigitalInput');

% Loop
disp('run')
i = 1;
frec(i) = 0;
step(i) = 0;
while step(i) < 10
    pin12 = readDigitalPin(arduino,'D12')
    if pin12 == 1
        
        tic;
        while pin12 == 1
            pin12 = readDigitalPin(arduino,'D12');
        end
        while pin12 == 0
            pin12 = readDigitalPin(arduino,'D12');
        end
        T = toc;
        
        i = i + 1;
        
        frec(i) = 1/T;
        if(i == 1)
            step(i) = T;
        else
            step(i) = T + step(i-1);
        end
        
    end
end

plot(step, frec)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
gunnerfeldt
Inlägg: 87
Blev medlem: 29 november 2010, 00:32:55

Re: Läsa av frekvens via USB - Effektivt eller kast?

Inlägg av gunnerfeldt »

Beror på hur hög frekvens såklart.
Och, du måste göra dina samplingar med controllerns klocka. USB timingen är svajig, milt uttryckt.

Men .. tänk ett ljudkort tex. Samplar i 96khz/24 bitar två kanaler och dumpar över USB om man har tur.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Läsa av frekvens via USB - Effektivt eller kast?

Inlägg av Al_Bundy »

Jag kommer bara hålla mig runt 2-20 Hz. Men jag tycker att min plott är så dålig. Varför svajar resultatet?

Okej. Så det sätt som jag gör, använda datorn som klocka, är inte ett bra sätt?
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Läsa av frekvens via USB - Effektivt eller kast?

Inlägg av lillahuset »

Rätt uppfattat.
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Re: Läsa av frekvens via USB - Effektivt eller kast?

Inlägg av xxargs »

windows och USB i synnerhet är ursla att ha som taktgivare och har varit så i alla tider.

det är bättre att USB-enheten lokalt håller i taktpinnen med egna räknare och sedan då och då dumpar datat till windows via USB i lämplig format.

Förr när man skulle ens komma i närheten av realtid i tex. samband med mätinstrument så körde man över 1394, även kallad firewire.
ToPNoTCH
Inlägg: 5147
Blev medlem: 21 december 2009, 17:59:48

Re: Läsa av frekvens via USB - Effektivt eller kast?

Inlägg av ToPNoTCH »

Din kod ser klart konstig ut.

Jag fattar inte riktigt ens hur du tror den skall producera frekvens.

Gör en extern interrupt och mät tiden mellan stigande flanker istället.
Skriv svar