Elektronika.lt
 2025 m. liepos 22 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2025 07 22, 23:09. Visos datos yra GMT + 2 valandos.
 Forumas » Elektronika žaliems » nereguoja realiu laiku adc
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 11, 23:57 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulius18
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
sveiki, pasirasiau programa su avr studio ir man ji neveikia taip kaip turetu. Iskylanti problema: ijungus mikrovaldikli ir sukinejant potenciometra isejime uzsifiksuoja pirmoji potenciometro reiksme, kol mikrovaldiklis dirba sukinejant potenciometra isejimuose niekas nesikeicia, taciau isjungus mikrovaldikli ir tuo metu pasukus potenciometra, po to vel ijungus mikrovaldikli isejime buna ta reiksme, kuri buvo nustatyta kai mikrovaldiklis buvo isjungtas. Tai kur beda ? Pridedu programos koda:
Kodas:
#include<avr\io.h>
#include<util/delay.h>
#include<avr\interrupt.h>

#define tarpas _delay_ms(1)

int main(void)

{

//////kintamieji/////
unsigned char i, n=8;


///////Isejimu registrai/////
DDRB=0b11111111;
DDRC=0b11111111;

/////ADC registrai/////
ADMUX=(1<<REFS0)|(1<<ADLAR);

ADCSRA=(1<<ADEN)|(1<<ADATE)|(1<<ADIE)|(1<<ADPS2);

ADCSRA|=(1<<ADSC);



   


//// skaiciuosim iki 16,tada iki 32, tada iki 64 ir iki 128. Ir viska suksim amzinai
   while(n<128)
      {
         n=n*2;
            for(i=0; i<16; i++)
             {
                //// pirmi 4 portai skaiciuojami dvejetaine sistema
                  PORTC = (PORTC & 0xf0) | i;
                   tarpas;
               }
         //// kiti 4 portai desimtaine sistema
            PORTC = (PORTC & 0x0f) ^~ n;
////////////////////isejimu ir adc valdymas///////////

if(n & 16)
   {
      if(ADCH<100)
         {
            PORTB = 0b1;


         }
      else   if(ADCH>100 && ADCH <200)
               {
                  PORTB = 0b11;


               }
            else   if(ADCH>200 )
                     {
                        PORTB = 0b111;


                     }

   }

   else if(n & 32)
   {
      if(ADCH<100)
         {
            PORTB = 0b1111;

         }
      else   if(ADCH>100 && ADCH <200)
               {
                  PORTB = 0b11111;

               }
            else   if(ADCH>200 )
                     {
                        PORTB = 0b111111;

                     }
   }
   else if(n & 64)
   {
      if(ADCH<100)
         {
            PORTB = 0b101;

         }
      else   if(ADCH>100 && ADCH <200)
               {
                  PORTB = 0b1001;

               }
            else   if(ADCH>200 )
                     {
                        PORTB = 0b10001;

                     }
   }
   else if(n & 128)
   {
      if(ADCH<100)
         {
            PORTB = 0b10101;

         }
      else   if(ADCH>100 && ADCH <200)
               {
                  PORTB = 0b1010101;

               }
            else   if(ADCH>200 )
                     {
                        PORTB = 0b11111111;

                     }
   
   }



/////////////////////////////////////////////////////
//////////////nreiksmes grazinimas i 0///////////////

         if(n == 128)
            n=8;
      }


}
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 08:18 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kita karta kodo talpinimui geriau naudok pastebin.com.
Siaip kodo labai nenagrinejau, bet kur amzinas ciklas? Jis viena karta apsisuko ir viskas.
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 11:14 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
tau reikia FreeRunning rezimo ir nepamirsti nors pirma karta inicializuoti ADC

#include <avr/io.h>

int main (void)
{
DDRE |= (1 << 2); // Set LED1 as output
DDRG |= (1 << 0); // Set LED2 as output

ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Set ADC prescalar to 128 - 125KHz sample rate @ 16MHz

ADMUX |= (1 << REFS0); // Set ADC reference to AVCC
ADMUX |= (1 << ADLAR); // Left adjust ADC result to allow easy 8 bit reading

// No MUX values needed to be changed to use ADC0

ADCSRA |= (1 << ADFR); // Set ADC to Free-Running Mode
ADCSRA |= (1 << ADEN); // Enable ADC
ADCSRA |= (1 << ADSC); // Start A2D Conversions

for(;Wink // Loop Forever
{
if(ADCH < 128)
{
PORTE |= (1 << 2); // Turn on LED1
PORTG &= ~(1 << 0); // Turn off LED2
}

else
{
PORTE &= ~(1 << 2); // Turn off LED1
PORTG |= (1 << 0); // Turn on LED2
}

}

}

o jei nori didesnio tikslumo, tai renkiesi kaskart inicijuojama ADC, tada nustatai reikiama kanala bei daznio dalikli, susitvarkai su pertraukimu dorokle, inicijuoji ADC, darai sleep. pertraukime iseini is sleep, nuskaitai reiksme.

#include <avr/io.h>
#include <avr/interrupt.h>

int main (void)
{
DDRE |= (1 << 2); // Set LED1 as output
DDRG |= (1 << 0); // Set LED2 as output

ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Set ADC prescaler to 128 - 125KHz sample rate @ 16MHz

ADMUX |= (1 << REFS0); // Set ADC reference to AVCC
ADMUX |= (1 << ADLAR); // Left adjust ADC result to allow easy 8 bit reading

// No MUX values needed to be changed to use ADC0

ADCSRA |= (1 << ADFR); // Set ADC to Free-Running Mode
ADCSRA |= (1 << ADEN); // Enable ADC

ADCSRA |= (1 << ADIE); // Enable ADC Interrupt
sei(); // Enable Global Interrupts

ADCSRA |= (1 << ADSC); // Start A2D Conversions

for(;Wink // Loop Forever
{
}
}

ISR(ADC_vect)
{
if(ADCH < 128)
{
PORTE |= (1 << 2); // Turn on LED1
PORTG &= ~(1 << 0); // Turn off LED2
}

else
{
PORTE &= ~(1 << 2); // Turn off LED1
PORTG |= (1 << 0); // Turn on LED2
}
}
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 19:48 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulius18
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Socrates rašo:
Kita karta kodo talpinimui geriau naudok pastebin.com.
Siaip kodo labai nenagrinejau, bet kur amzinas ciklas? Jis viena karta apsisuko ir viskas.

tai jis ir sukasi amzinai, kadangi kodo pabaigoje n reikse nustatoma i 8, todel skaiciavimas niekados nesibaigia
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 19:49 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulius18
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
antatmegos16 nera free runing rezimo
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 20:02 Pranešti apie taisyklių pažeidimą Atsakyti su citata
sopkis
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Saulius18 rašo:
antatmegos16 nera free runing rezimo

221 datasyto puslapis, sfior registro bitai 7-5, adts2-0, lentele paskaityk ir rasi free runnig
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 20:32 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Saulius18 rašo:
Socrates rašo:
Kita karta kodo talpinimui geriau naudok pastebin.com.
Siaip kodo labai nenagrinejau, bet kur amzinas ciklas? Jis viena karta apsisuko ir viskas.

tai jis ir sukasi amzinai, kadangi kodo pabaigoje n reikse nustatoma i 8, todel skaiciavimas niekados nesibaigia


Tada kodas kazkoks neitiketinai kreivai parasytas Smile
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 22:04 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulius18
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
kaip neitiketinai?, pasibandyk ir pamatysi viskas sukama ratu, nes while reiksme niekad netampa 0
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 22:37 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Saulius18
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
paleidau ir su free runing rezultatas tas pats
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 12, 23:04 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pabandyk taip

//// skaiciuosim iki 16,tada iki 32, tada iki 64 ir iki 128. Ir viska suksim amzinai
while(n<255)


jei suveiks, tada susitvarkyk logika taip, kad pats suprastum ka priburei
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 13, 15:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Saulius18 rašo:
kaip neitiketinai?, pasibandyk ir pamatysi viskas sukama ratu, nes while reiksme niekad netampa 0


Kad sukama ratu tai gerai, bet kad tavo kodo skaityt neimanoma ir ji supranti tik tu vienas, tai cia nieko gero. Nesulauksi pagalbos, jei laikysies tokio stiliaus.
 nereguoja realiu laiku adc
PranešimasParašytas: 2011 09 13, 15:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
draryk


while (1) {

}


ir neknisk mums smegenu
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Football Training Kit
Football Training Equipment, Football Skills, Football Training
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama