Hirdetés

Új hozzászólás Aktív témák

  • Peter789
    senior tag

    Köszönöm az ajánlásokat, de én még az a programozó vagyok aki a kódokat szereti látni és megtanulni őket leírni :D
    Természetesen megy az élesztés és kisebb programokat már írtam is mint pl.: while ciklusok számolása, nyomógombok használata magas és alacsony szintetek beállítása és kezelése, ledek villogtatása vagy éppen csak kapcsolgatása, és természetesen mindezek értékeit LCD-re kiíratom folyamatos frissítéssel.

    Alap programozói tapasztalataim a webes irányzatból vannak így némileg el tudok gravírozni az egyes főbb függvények közt. (HTML, CSS, JS, PHP SQL ismereteim vannak)

    A gondom az hogy elakadtam az analóg jelek bekérésénél és azok feldolgozásánál.
    Egyenlőre beállítom a PIC A0-ás lábára, hogy analóg bemenet legyen és a beépített ReadADC() függvénnyel próbálom kiolvasni a rákerülő jeleket.

    A fő program része:
    #include <p18f4550.h> //chip beállítása
    #include <stdio.h> //I/O portok beállítása
    #include <delays.h> //Időzítő
    #include <tesztheader.h>
    #include "lcd.c"
    #include <adc.h>
    #define ANALOG_IN ADC_CH0 //a potméter AN0-ra csatlakozik

    volatile unsigned char a;
    void main(){

    lcd_init(); // Az LCD modulinicializálása
    lcd_init_cgram(); // Az ékezetes betűk feltöltése
    stdout = _H_USER; // Az LCD legyen a standard kimenetnt

    TRISAbits.TRISA0 = 1; //analog A0 láb legyen bemenet
    ADCON0=0b00000001;
    OpenADC(ADC_FOSC_64 | ADC_RIGHT_JUST | ADC_20_TAD, ANALOG_IN | ADC_INT_OFF | ADC_REF_VDD_VSS, ADC_2ANA);

    TRISBbits.TRISB7 = 0;
    LATBbits.LATB7 = 1;

    while(1){
    a=0L;
    Delay10TCYx(80);
    a = ReadADC();
    printf("Valami %u", a);
    lcd_write(0xC0,0,1,1);

    }
    }

    Elviekben a header állományban minden deklarálva van ami szükséges lehet mivel a program nem figyelmeztet, hogy hiányolna valamit :D
    Előre is köszi a segítséget.

    Az hogy deklarálva van minden, még nem feltétlenül jelenti azt hogy nincsen valami félredeklarálva :)

    Az elakadás az analógnál mit jelent? Valami fix fals értéket sikerül olvasni róla, vagy le se tudod fordítani a programot?

    "az a programozó vagyok aki a kódokat szereti látni és megtanulni őket leírni" - dehát itt használod a már kész ADC és egyéb függvényeket, nem magad piszkálod a regisztereket, tehát "csalsz" :) Amivel persze semmi gond egészen addig amíg a kész függvények megfelelnek a céljaidnak. Elször én is a mikroe rendszer beépített UART olvasó függvényeit használtam pl, de hamar rájöttem hogy sokkal többre képes a vas és utánatúrtam hogy hogyan tudok saját IRQ alapú feldolgozást írni. De pont ez tetszik a mikroe-ben hogy tengernyi a példa és kész/félkész megoldás, lelkes a közösség, így könnyű elindulni és fejlődni...

Új hozzászólás Aktív témák