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, 06:52. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!!
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ą 
 AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!!
PranešimasParašytas: 2012 05 21, 10:42 Pranešti apie taisyklių pažeidimą Atsakyti su citata
eimas09
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sveiki. turiu tokia beda su pertrauktim. Pasirasiau kodo dali kuri nuskaito ADC reiksme ir isveda ja i lcd (potenciometro ir LDR) su pertrauktim , bet kai noriu ideti kartu ir temperaturos sakityma tai man ta dalis pagrindiniame while neveikia.. gal kas galit padet? atrodo kad pertrautkis visada nutraukia koda

naudoju avr atmega328p mikro valdikli

Kodas:

#include <built_in.h>

 // LCD modulio jungimas
sbit LCD_RS at PORTD0_bit;
sbit LCD_EN at PORTD1_bit;
sbit LCD_D4 at PORTD2_bit;
sbit LCD_D5 at PORTD3_bit;
sbit LCD_D6 at PORTD4_bit;
sbit LCD_D7 at PORTD5_bit;

sbit APSAUGA at PORTB3_bit;
sbit APSAUGA_Direction at DDB3_bit;

sbit LCD_RS_Direction at DDD0_bit;
sbit LCD_EN_Direction at DDD1_bit;
sbit LCD_D4_Direction at DDD2_bit;
sbit LCD_D5_Direction at DDD3_bit;
sbit LCD_D6_Direction at DDD4_bit;
sbit LCD_D7_Direction at DDD5_bit;
// LCD modulio jungimo pabaiga

unsigned char bufflcd[1];
unsigned short int Low;
unsigned short int High;
unsigned int tenBitValue;


void main()
{
   DDRB = 0xFF;      //B output
   //PORTB = 0xFF;     //B porte vienetai
  Lcd_Init();                                   // Instalizuojamas LCD
  Lcd_Cmd(_LCD_CLEAR);                          // isvalomas  LCD
  Lcd_Cmd(_LCD_CURSOR_OFF);                     // kursoriaus isjungimas
  Lcd_Out(1,1,"Temp");
  Lcd_Out(2, 7, "Pot");
  Lcd_Out(2, 1, "Ldr");

    ADCSRA |= 1<< ADPS2;   // nustatom dazni pagal isorini kvarca
    ADCSRA |= 1<< ADPS1;   // tarp 50-200MHz, naudosi 128 nes telpa i nustatytas ribas ir todel nustatom siuos bitus vienetais
    ADCSRA |= 1<< ADPS0;   // 16MHz/200 = 80 16MHz/50 = 320

    ADMUX  |= 1<< REFS0 | 1<< REFS1;     //nustatom kad maitinima imtu   is VCC

    ADCSRA |= 1<< ADIE;     //ijungiame pertrauktis
    ADCSRA |= 1<< ADEN;    //ADC ijungimas

    asm sei;                  //ijungiamos pertrauktys

   ADCSRA |= 1 <<ADSC;        //pradedam konvergacija




while(1)

{
/*
 STAI CIA ITERPIU BETKOKIA PROGRAMOS DALY KAD IR PAMIRKCIOTI LEDUS BET JIE NEMIRKSI. TIK PALEIDUS KODA SUMIRGA VIENA KARTA O TOLIAU PERTRAUKTIS NUTRAUKAI VISA VEIKIMA
*/
}





}


void interupt() iv IVT_ADDR_ADC ics ICS_OFF {          //interupt service register nuskaito adc pertraukciai ivykus vygdo sia funkcija

Low = ADCL;                   //low 8 bitai
High = ADCH;                  //high 2 bitai
tenBitValue = (High <<8 | Low)/10.23;  //10 bitu ilgio int kintamasis su perskaiciuota max reiksme =100

            switch (ADMUX)     //parenkamas kanalas konvergavimo  tarp POT ir LDR
            {
              case 0xC0:                               //nulinis adc pinas (ADC0)
              IntToStr(tenBitValue,bufflcd);         //isveda 10bitu kintamaji i ekrana dec formoi
              Lcd_Out(2,6,bufflcd);
              ADMUX = 0xC1;
              break;
              case 0xC1:                        //pirmas adc pinas (ADC1)
               if (tenBitValue <= 70)               // jei mziau uz 70 ijungia led'a
              {
               PORTB = 1 << PINB3;
               delay_ms(10);
              }
              else
              {
               PORTB = 0;
              }
              IntToStr(tenBitValue,bufflcd2);
              Lcd_Out(2,-1,bufflcd2);
              ADMUX = 0xC0;
              break;
              default:
              //Default code
              break;
            }
ADCSRA |= 1<<ADSC;                             //pradeda nauja konvergavima

}


Paskutinį kartą redagavo eimas09, 2012 05 21, 11:21. Redaguota 3 kartus(ų)
 AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!!
PranešimasParašytas: 2012 05 21, 11:14 Pranešti apie taisyklių pažeidimą Atsakyti su citata
eimas09
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
beje kompiletorius mikroC for AVR is http://www.mikroe.com

gal kas galit padet ispresti sia problema su pertrauktim? nes net ledai nezypsi void main'e while cikle..[url][/url]
 AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!!
PranešimasParašytas: 2012 05 24, 00:03 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
aga, pertrauktyje isvedimas i lcd, dar pause_ms(), o ir konverGavimas pas tavi idomus Very Happy
 AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!!
PranešimasParašytas: 2012 05 24, 03:34 Pranešti apie taisyklių pažeidimą Atsakyti su citata
eimas09
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
AlgisL rašo:
aga, pertrauktyje isvedimas i lcd, dar pause_ms(), o ir konverGavimas pas tavi idomus Very Happy


Pakeiciau dabar koda kazkiek , bet vistiek pjaunas kazko man temperaturos isvedimas ir kartu su POT ir LDR. Dabar informacijos isvedimas i LCD main funkcijoi while cikle ikistas kaip ir temperaturos skanavimas bei POT ir LDR reiksmiu pagavimas. Tik dabar galvoju kaip RTC dar i visa sita ikist ... Su juo galima sakyt nk nemoku .. Very Happy
 AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!!
PranešimasParašytas: 2012 05 24, 08:25 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Su 28 koju gelaziukais RTC trabliemos tokios, kad norint juo pasinaudoti tenka rinktis arba 32,768 khz kvarcas ant XTAL koju ir sistema taktuoji nuo vidinio kalibruoto RC osciliatoriaus arba naudoji isorini RCT per I2C ar SPI.
jei tavo poreikia apsiriboja max 1/8ms tikslumo laikmaciu ir nesinaudosi USART arba naudosi mazus BAUD_RATE - skaityk viskas Ok.
nustates preskaleri DIV8, timer0 pertraukime skaiciuodamas 1000 pertraukciu gausi 1sek intervalo periodus ir galesi emuliuoti RTC, visa kita taktuodamas nuo vidinio ~8 MHz RC osciliatoriaus dar galesi kazka papildomo nuveikt.
 AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!!
PranešimasParašytas: 2012 05 29, 11:06 Pranešti apie taisyklių pažeidimą Atsakyti su citata
eimas09
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
AlgisL rašo:
Su 28 koju gelaziukais RTC trabliemos tokios, kad norint juo pasinaudoti tenka rinktis arba 32,768 khz kvarcas ant XTAL koju ir sistema taktuoji nuo vidinio kalibruoto RC osciliatoriaus arba naudoji isorini RCT per I2C ar SPI.
jei tavo poreikia apsiriboja max 1/8ms tikslumo laikmaciu ir nesinaudosi USART arba naudosi mazus BAUD_RATE - skaityk viskas Ok.
nustates preskaleri DIV8, timer0 pertraukime skaiciuodamas 1000 pertraukciu gausi 1sek intervalo periodus ir galesi emuliuoti RTC, visa kita taktuodamas nuo vidinio ~8 MHz RC osciliatoriaus dar galesi kazka papildomo nuveikt.


Pas mane bus isorinis laikrodzio cipas ds1307 ir su isoriniu kvarcu . man reik parasyti koda kad su mygtukais galeciau nustatyti laika ir ji atvaizduoti lcd ekrane prie visos sios kodo dalies. kvarcas bus naudojamas isorinis prie XTAL koju
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