 |

|
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 10 12, 16:45. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Analog Comparator(A/D converter)
|
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
|
|
|
 |
Analog Comparator(A/D converter) |
Parašytas: 2006 03 05, 22:23 |
|
|
|
gal kas esat bande daryti A/D converteri ar sheip matave ytampa. But geriau C kalba. Seip asm radau, bet kad nelabai ishein parashyt su C. |
|
|
|
|
 |
 |
 |
 |
 |
Analog Comparator(A/D converter) |
Parašytas: 2006 03 07, 08:50 |
|
|
|
Pas mane paprastai atlikta - trifazio variklio laidas pereina kiauriai per daviklį (Talema 1040), kuris generuoja 1-5V įtampą, o kodas tai paprastas:
;PC0 - įėjimas iš daviklio Asm100
;PC1 - relės valdymas
;PC2 - auto diodas
;PC3 - relės valdymas
;PC4 - galinukas 1
;PC5 - galinukas 2
;PC6 (reset pin)
;PC7 not connected
ldi temp, 0b11001110
out DDRC,temp
ldi temp, 0b00110100
out PortC, temp
;ADC paruosimas
ldi temp,0b10000001
out ADCSR, temp
ldi temp, 0b00100000 ; PC0 kanalas - 23 koja
out ADMUX, temp
; procedūra matavimo:
;********************************************************
;============< ADC - R16,R17
;********************************************************
GetADC:
sbi ADCSR, ADSC
dar_nekonvertuota:
sbis ADCSR, ADIF ; pabaigta?
rjmp dar_nekonvertuota
in now_ADC, ADCH
ret
;********************************************************
Konvertavimas nevyksta automatiškai, o yra iššaukiamas kai man reikia. |
|
|
|
|
 |
 |
Analog Comparator(A/D converter) |
Parašytas: 2006 03 20, 00:40 |
|
|
|
oni o cia su kokiu mikrovaldikliu?
matai ishkart nepasakiau, ash darau su 2313, ir cia reik tikrint kada i AIN1 ir AIN0 yra paduota vienoda ytampa.
ash cia bandau rashyt su c, bet man nesigaun interrups. Su assembleriu bandziau pagal pavyzdi tai ir kashko nenor dirbt.
Gal kas turit kokiu minciu? |
|
|
|
|
 |
 |
Analog Comparator(A/D converter) |
Parašytas: 2006 03 20, 01:07 |
|
|
|
Dariau kazkada toki pigu A/D converter'i. Tik dar naudojau tranza, jog gauciau pastovia srove kondensatoriui krauti.
Principas paprastas:
Kondensatorius iskraunamas (ant kojos nustatomas nulis).
Tada ta koja nustatoma kaip IN (komparatoriaus koja) ir ijungiamas kondensatoriaus krovimas bei paleidziamas skaitiklis (taimeris).
Ant kitos komparatoriaus kojos "kabo" itampa, kuria matuojame.
Kai itampos pasidaro lygios, tada gaunamas komparatoriaus trukis ir nuskaitome taimerio reiksme.
Kadangi kondensatorius kraunamas pastovia srove, tai laikas yra proporcingas itampai.
Tiksluma pavyko pasiekti apie 10bitu (toliau jau random gaunasi). Naudojau termoporos itampos matavimui (aisq operacinuka dar teko statyti).
P.S. dariau su 2313 ir ASM |
|
|
|
|
 |
 |
Analog Comparator(A/D converter) |
Parašytas: 2006 03 20, 18:28 |
|
|
|
Aidas, matai ash taip pat ir meginu, bet man kashkodel neivyksta interrupt's kai jos susilygin, ar bent turetu susilygint:). Gal galetum asm koda parodyt, jei dar turi. |
|
|
|
|
 |
 |
Analog Comparator(A/D converter) |
Parašytas: 2006 04 09, 21:50 |
|
|
|
esu prie AIN1 pajunges silumos sensoriu(LM35), ir jis man i kompa siunc laika per kiek uzsikraun. Bet kodel kai pasildau jis praded duot mazesni laika. Juk sildant atein didesne ytampa, ir kondiks turetu krautis ilgiau, bet man jis siunc trumpesni laika. Gal kas minciu kokiu turit? arba gal zinot kaip kitaip parasyt ta visa dalyka?
#include <io2313.h>
#include <ina90.h>
#define MCU_XTAL 4.0000 // The unit is MHz, for main MCU
#define Delay_us(x) __delay_cycles (x * MCU_XTAL)
#define Delay_ms(x) __delay_cycles (x * MCU_XTAL * 1000)
#define Delay_s(x) __delay_cycles (x * MCU_XTAL * 1000000)
#define setbit(ADDRESS,BIT) (ADDRESS |=(1<<BIT))
#define clrbit(ADDRESS,BIT) (ADDRESS &=~(1<<BIT))
#define CHECKBIT(ADDRESS,BIT) (ADDRESS & (1<<BIT))
int a=48;
void siusti();
void main()
{
siusti();
TCCR0=0x02; // 010: Clock = chip clock
DDRB=12;
DDRD=0xff;
PORTB=0;
TIMSK=0x02;
ACSR=0x08;
__enable_interrupt();
while(1)
{
PORTB=0;
Delay_ms(400); //iskraunu kondika
PORTD=0;
TCNT0=0x00; //paleidziu laikrodi
PORTB=12;
Delay_ms(600);
}
}
#pragma vector = ANA_COMP_vect
__interrupt void ana_comp_isr(void)
{
a=TCNT0;
PORTD=255;
PORTB=0;
}
void siusti()
{
UBRR=103;
//Nustatome 2400bps perdavimo greitá 11MHz rezonatoriui
//Ájungiame perdavimo pertrauktá 1-> TXCIE
//Ájungiame priëmimo pertrauktá 1->RXCIE
//Ájungiame priëmimà 1-> RXEN
//Ájungiame perdavimà 1-> TXEN
UCR=(1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN);
}
#pragma vector = UART_RX_vect //Priëmimas
__interrupt void UDR_RX()
{
int b;
b=UDR-0x30; // Eliminuojam ASCII
if(b==0)
UDR=a;
} |
|
|
|
|
 |
 |
|
 |
|
 |
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 |
 |
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 |
|

|
 |