 |

|
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
|
|
|
 |
 |
 |
AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!! |
Parašytas: 2012 05 21, 10:42 |
|
|
|
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!!! |
Parašytas: 2012 05 24, 03:34 |
|
|
|
AlgisL rašo: |
aga, pertrauktyje isvedimas i lcd, dar pause_ms(), o ir konverGavimas pas tavi idomus  |
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 ..  |
|
|
|
|
 |
 |
AVR ATMEGA 328 -> temp,ADC,LCD <- HELP!!! |
Parašytas: 2012 05 24, 08:25 |
|
|
|
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!!! |
Parašytas: 2012 05 29, 11:06 |
|
|
|
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 |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
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 |
|

|
 |