|
|
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 2024 12 27, 16:08. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » avr 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
|
|
|
|
|
|
avr adc |
Parašytas: 2012 03 25, 14:52 |
|
|
|
Sveiki, visi kazkaip niekaip nesugalvoju kaip parasyti programa kad kai temperatura pakila pvz iki 25 laipsiu tai PORTD=255; ir po sekundes ar 5 sekunciu PORTB=0; ir viskas
O kai buna maziau 25 laipsiu (pvz is 26 laipsiu i 24 laipsiu)
Tai portd=255; ir po sekundes portd=0;
na su laipniais tai padariau bet problema tai KAD NEZINAU KAIP PADARYTI KAD ISIJUNGTU IR PO KIEK LAIKO ISSIJUNGTU IR NEBEISSIJUNGTU KAIJU NENUKRENTA ZEMIAU 25 LAIPSIU A ATVISKCIAI?
Programa
#include<avr\io.h>
#include<avr\interrupt.h>
#include <util/delay.h>
#define motor_stop PORTD=0x00;
#define motor_kaire PORTD=0x02;
#define motor_des PORTD=0x04;
#define ledas PORTD=0x20;
ISR(SIG_ADC)
//-------------------------------------------------------------------------
{
//pirmoji reiksme
if(ADCH>0 && ADCH<11.5) // nuo 0 iki 25
{
motor_des;
}
//pirmoji reiksme
if(ADCH>11.5 && ADCH<12.5) // nuo 0 iki 25
{
ledas;
}
//pirmoji reiksme
if(ADCH>12.5 && ADCH<100) // nuo 25 iki 200
{
motor_kaire;
}
//------------------------------------------------------------------
ADCSRA|=(1<<ADSC);
}
int main(void)
{
//------------------------------------------------------------------------------------
DDRD=255;
ADMUX=(1<<REFS0)|(1<<ADLAR);
ADCSRA=(1<<ADEN)|(1<<ADFR)|(1<<ADIE)|(1<<ADPS2);
ADCSRA|=(1<<ADSC);
sei();
//------------------------------------------------------------------------------------
while (1) {
}
} |
|
|
|
|
|
|
avr adc |
Parašytas: 2012 03 26, 20:42 |
|
|
|
Galinga programa, dar galingesni norai, kad net nelabai aina suprast kas norima padaryt...
Siaip kas cia per velnias if(ADCH>11.5 && ADCH<12.5)? Jeigu ka tai adc reiksme yra ne float tipo, aiku kompiliatorius sringdamas sukramto, bet kam daryt tokias nesamones? |
|
|
|
|
|
|
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 |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
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 |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|
|
|