Keresés

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

  • don_peter

    senior tag

    válasz Peter789 #4370 üzenetére

    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.

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