Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Picbasic pitanja za sve sto mi nije jasno

[es] :: Elektronika :: Mikrokontroleri :: Picbasic pitanja za sve sto mi nije jasno

Strane: << < .. 22 23 24 25 26 27

[ Pregleda: 108941 | Odgovora: 530 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
..178.212.adsl.dyn.beotel.net.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno08.01.2019. u 18:16 - pre 63 meseci
Mozda se nismo razumeli, mebi je bitno da se promena stanja odradi bas u prekidu..
Zamisli izvor signala je od 80 do 180hz vodim na ocitavanje preko interrupta rb0.... Kada odem u interrupt sa prekidom 2 ( taster ili signal) cekam prekid 1 na rb0 to jest pocetnu ivicu signala samog impulsa frekvence od 80 do 180hz gde svaki naredni impuls kratim po potrebi i na izlaznom pinu saljem impuls u trajanju koliko sam skratio...
Znaci frekvenca je i dalje ista ali ispuna samog impulsa zavisi od mene... Ulazni signal je cetvrtka

Ostatak programa je prikazivanje vrednosti na displeju
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
..178.212.adsl.dyn.beotel.net.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno08.01.2019. u 19:12 - pre 63 meseci
Ili mogu sve ovo odraditi preko promene stanja na ulaznom pinu klasicno .... Sta je vas predlog?
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno08.01.2019. u 19:31 - pre 63 meseci
877 ima do 15 izvora interapta koji se svode na samo jednu interapt rutinu. Nije kao kod 18f gde postoje i prioriteti interapta.
Znači, kada si jednom ušao u interapt rutinu, kompajler je na stek gurnuo trenutne sadržaje registara da bi imao odakle da nastaviš po izlasku iz interapt rutine (povlačenje registara sa steka).
Ako ne isključiš interapte dok si u interapt rutini i nastupi sledeći interapt, sa istog ili nekog drugog izvora, ti si u problemu (a i PIConja).
Ako ćeš da čekaš na promene stanja na ulaznom pinu, samo čučiš u petlji, da li ćeš imati vremena da se pozabaviš osvežavanjem displeja?
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
..178.212.adsl.dyn.beotel.net.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno08.01.2019. u 20:36 - pre 63 meseci
Razumem te u potpunosti sada.... Hvala jos jednom

Prosto neizvodljivo za ono sto sam zamislio, ali je izvodljivo sa jednim interruptom koji me posalje u podprogram gde zaista cucim u petlji i iscitavam stanje pina i to radi bez greske( mada mi se pojavi nekada kasnjenje u startu ali to su delici sekunde u pitanju, ili sam mozda umislio pa sam zato hteo jos jedan interupt zbog brzeg odaziva) ... Osvezenje 7 segment displeja po broju mi je 2 mili sekunde( dve do tri cifre) , a displej ostane zakocen dok se podprogram ne zavrsi i to nije problem .... Displej pokazuje zadate vrednosti koje se odmah upisuju u unutrasnjem epromu koje sam unesem u startu tasterima + i - , a kasnije u obradi u podprogramu iscitam, sto znaci za par sekundi mi i nije bitno sto je displej ukocen.....
Odmah po zavrsetku sve je ok i radi kako valja sto se displeja tice


 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
..178.212.adsl.dyn.beotel.net.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno08.01.2019. u 20:58 - pre 63 meseci
Mislim da sam sa tobom pisao o nekom drajveru za 7 segment displej kome upisujes vrednost i on sam drajvuje displej, a u svakom trenutku mozes promeniti vrednost preko pina clear i enable gde prvo izbrise pa preko enable upise novu vrednost preko portova za komunikaciju.... Davno je bilo
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
31.223.133.192



+333 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno08.01.2019. u 21:09 - pre 63 meseci
direktno drajvovanje displeja je out.
Pogledaj, meni se mnogo svidja, TLC 5916, radi fino a vozi konstantnu struju.
Ako hoces kalsiku 74595 i neki ULN da drajvuje.
Ako ti treba TLC imam ja viska x komada, pa salji adresu da ti posaljem ( valjda carina nece praviti problem).
Inace, nevezano, ako ti treba vise interapta fino napravis ili kolo ( sa diodama ili kako god) na jedan interapt pin, a u prekidu kontas sta raditi.
Inace tih 180 Hz je djecija igra za bilo koji kontroler.
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno08.01.2019. u 21:28 - pre 63 meseci
Za drajvovanje displeja MAX7219
Ili čitav modul sa 8 7seg cifre.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
212.178.237.*

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno10.01.2019. u 16:40 - pre 63 meseci
Hvala Jovane, skoro sam bio do Sarajeva(vogsca) pa sam mogao da pokupim licno() ali nije problem mogu nabaviti ako resim sa tim kolom da odradim....
Hvala Zoranu, na to sam mislio, MAXIM kolo neko je bilo u pitanju i to je to...
Videcemo sta se bolje uklopi jer jos nisam PCB odradio, samo probao na razvojnom sistemu.

Hvala svima na pomoci...
 
Odgovor na temu

electron2008

Član broj: 214405
Poruke: 179
109.94.233.*



Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno02.05.2021. u 14:06 - pre 35 meseci
Kako bi ovo izgledalo u PicBasicu? Da li neko zna? Na sajtu je u MPAB XC8 Code i u MikroC Code


.
Code:
#include <xc.h>
#define _XTAL_FREQ 20000000 //define crystal frequency to 20MHz
#define digit1 PORTBbits.RB0
#define digit2 PORTBbits.RB1
#define digit3 PORTBbits.RB2
#define digit4 PORTBbits.RB3
// This array stores binary bit pattern that will be send to PORTD
unsigned char binary_pattern[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char display1[10]= {0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xE7};    // with dp turn on
unsigned int a1,a2,a3,a4;
unsigned int counter = 0;
int adc_value; //store output value from Analog Read functoion
unsigned int number;
long tlong;
unsigned int voltage;
void Analog_setting(){
    ADCON0 = 0x81;
    ADCON1 = 0x02;
}

unsigned int Analog_read(unsigned char channel){
    int aadc,bbdc, ccdc;
    if(channel>7)return 0;
    ADCON0 = ADCON0 & 0xC5;
    ADCON0 = ADCON0 | (channel << 3);
    __delay_ms(2);
    ADCON0bits.GO_DONE = 1;
    while(ADCON0bits.GO_DONE);
    aadc = ADRESH;
    aadc = aadc<<2;
    bbdc = ADRESL;
    bbdc = bbdc >>6;
    ccdc = aadc|bbdc;
    return ccdc;

}
void main(void)
{
    Analog_setting();
    TRISD = 0x00; //define PORTD as a output pin
    PORTD=0X00;   // initialize PORTD pins to active low
    TRISB=0X00;
    digit1 = 1;
    digit2 = 1;
    digit3 = 1;
    digit4 = 1;
    while(1)
    {
          adc_value = Analog_read(0);  // read data from channel 0
           tlong = (float)adc_value*0.488768555;
           voltage = tlong;
       
           a1 = voltage / 1000;   // holds 1000's digit
           a2 = ((voltage/100)%10); // holds 100's digit
           a3 = ((voltage/10)%10);  // holds 10th digit
           a4 = (voltage%10);  // holds unit digit value
           
       
PORTD=binary_pattern[a2]; // send 1000's place data to fourth digit
digit1=0;   //  turn on forth display unit
__delay_ms(3);
digit1=1;   //  turn off forth display unit
PORTD=display1[a3];  // send 100's place data to 3rd digit
digit2=0;    //  turn on 3rd display unit
__delay_ms(3);
digit2=1;  //  turn off 3rd display unit
PORTD=binary_pattern[a4];  // send 10th place data to 2nd digit
digit3 = 0;  //  turn on 2nd display unit
__delay_ms(3);
 digit3 = 1;   //  turn off 2nd display unit
PORTD=binary_pattern[a1];  // send unit place data to 1st digit
digit4 = 0;  //  turn on 1st display unit
__delay_ms(3);
digit4 = 1;  //  turn off 1st display unit


    }
    return ;
}






https://microcontrollerslab.co...isplay-pic-microcontroller/amp
Radi se o jednostavnom voltmetru. Ako neko ima.picbasic kod za led displaye, ja imam sa lcd

Code:
    ' Name        : VMETERX.pbp
' Compiler    : PICBASIC PRO Compiler 2.6
' Assembler   : PM or MPASM
' Target PIC  : 40-pin 16F877 or similar
' Hardware    : LAB-X1 Experimenter Board
' Oscillator  : 4MHz external
' Keywords    : ADCIN, LCDOUT
' Description : PICBASIC PRO program to measure voltage (0-5VDC)
' and display on LCD with 2 decimal places.
'

' This program uses the */ operator to scale the ADC result from 0-1023
' to 0-500. The */ performs a divide by 256 automatically, allowing math
' which would normally exceed the limit of a word variable.

' Connect analog input to channel-0 (RA0)

' Define LOADER_USED to allow use of the boot loader.
' This will not affect normal program operation.
Define LOADER_USED 1

' Define LCD registers and bits
Define LCD_DREG  PORTD
Define LCD_DBIT  4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG  PORTE
Define LCD_EBIT  1

' Define ADCIN parameters
Define ADC_BITS     10 ' Set number of bits in result
Define ADC_CLOCK    3  ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS

adval Var Word         ' Create adval to store result

   TRISA = %11111111   ' Set PORTA to all input
   ADCON1 = %10000010  ' Set PORTA analog and right justify result
   Low PORTE.2         ' LCD R/W line low (W)
   Pause 500           ' Wait .5 second

mainloop:
   Adcin 0, adval      ' Read channel 0 to adval (0-1023)
   adval = (adval */ 500)>>2 ' Equates to: (adval * 500)/1024

   LCDOut $fe, 1       ' Clear LCD
   LCDOut "DC Volts= ",DEC (adval/100),".", DEC2 adval ' Display the decimal value 
   Pause 100           ' Wait .1 second
   Goto mainloop       ' Do it forever

   End
       


https://i2.wp.com/microcontrol...jpg?resize=768%2C396&ssl=1


[Ovu poruku je menjao electron2008 dana 02.05.2021. u 15:26 GMT+1]
 
Odgovor na temu

MILANAN
MILAN ANDRIC
OPERATRER,PCRACUNARA
SVRLJIG,SRBIJA

Član broj: 257039
Poruke: 876
*.dynamic.a1.rs.



+10 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno21.05.2021. u 20:04 - pre 34 meseci
Evo nabrzinu ako se nisi snasao jer tema je odavno postavljena.Nemam za voltmetar,nesto drugo sam pravio ali displej radi pa samo ubaci sta treba za voltmetar.Obrati ovde paznju na pauze,postavljene su vece nego sto treba zbog proteusa.Ovo je za 16f883 koliko se secam i sa zajdnickom katodom a tranzistori pnp,zato je portc = ~Dcd i da bi pobuda bila 0 a ako stavis npn onda pobuda 1 pa netreba nagacija.Nisam skoro nista pravio sa ovim pa mozda ima neka greska ali snaci ces se.Po meni zasto voltmetar sa PIC i LED displej kad sa lcd mozes da izvuces i vise,ja sam pravio za 4 merenja.
Za anodu tranzistor vezan na anodu,pobuda isto kao ovde zavisno od tranzistora i brojevi u Lookup za anodni displej.

c var byte
broj var word
n Var Byte
i var byte

TRISA = %11111111
trisc = 0
trisb = %00000000
broj=0
ANSEL = %00000000

pocetak


COUNT PORTA.0,1000,BROJ



For i = 0 To 7
n=broj Dig i
GoSub display1
Pause 1000

display1:
portc = $ff
Lookup n, [%0111111,%0000110,%1011011,%1001111,%1100110,%1101101,%1111101,%0000111,%1111111,%1101111], portb

portc = ~Dcd i
Next i


goto pocetak
end
MILAN ANDRIC
 
Odgovor na temu

electron2008

Član broj: 214405
Poruke: 179
77.243.27.*



Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno04.06.2021. u 13:39 - pre 34 meseci
Ma znam da se sa lcd može više izvući, ali bi ovo za aparat za zavarivanje na nekoj masini, pa mislim da bi lcd više ludeo od 7 segment
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Picbasic pitanja za sve sto mi nije jasno

Strane: << < .. 22 23 24 25 26 27

[ Pregleda: 108941 | Odgovora: 530 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.