|
|
|
|
|
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 |
|
|
|
Publikuota: |
2005-03-06 14:48 |
Tematika: |
Mikrovaldikliai |
Tipas: |
Paprasta |
|
| Pagrindinis stereo garso lygio indikatoriaus elementas yra „Atmel“ firmos AVR mikrovaldiklis „Atmega16“. Papildomai prietaiso pagaminimui reikės 16 šviesos diodų, 17–16 MHz kvarcinio rezonatoriaus, kelių kondensatorių bei mažos galios varžų... |
|
|
|
|
|
|
|
Antanas |
2011-11-21 15:44 |
|
Man su avr-gcc kompiliuojant meta tokias klaidas:
lygio_indikatorius.c:33: warning: ignoring #pragma vector
lygio_indikatorius.c:34: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
kodo eilutes:
33 eilute: #pragma vector=ADC_vect
34 eilute: __interrupt void Analog()
kompiliavimo eilute: avr-gcc -mmcu=atmega16 -Wall -o lygio_indikatorius.elf lygio_indikatorius.c
Kame cia beda gali buti? |
Atsakymai (0) |
asasasas |
2009-04-25 00:44 |
|
joa... nustaciau tuos fusebitus kokie parodyti, ir db atmega man nebeveikia, smagu.... |
Atsakymai (0) |
Darius |
2008-12-21 13:16 |
|
Sveiki, kokius reikia cia naudoti diodus prie įėjima ? |
Atsakymai (0) |
Evil |
2008-07-26 20:40 |
|
nu pradedanciajam tai cia katastrofa, o ne kodas... o suprantanciam jokios naudos... |
Atsakymai (0) |
Aurimas |
2007-01-07 18:23 |
|
Na truputi realesnis variantas. jei kiltu klausimu rasykit..
#include <iom16.h>
#include "ina90.h"
// Laiko vėlinimo funkcijos aprašymas
void Laikas2(unsigned int m);
// Globalus kintamasis stereo kanalų išskyrimui
char i=0;
void main()
{
//PORTB ir PORD nustatymas kaip išėjimo prievadai
DDRB=255; DDRD=255;
//ADMUX registras skirtas ASK valdymui
//REFSx - nustato etaloninį maitinimo šaltinį skirtą ASK
//MUXx - viduje esančio multiplekserio nustatymui
// MUX1->1 ir MUX0->1 nustato kaip įėjimą 37 išvadą
//ADLAR - nustato nuskaitymo iš duomenų registro ADC būdą
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|
(1<<MUX1)|(1<<MUX0);
//ADCSRA - ASK valdymo, įjungimo, išjungimo registras
//ADEN ->1- įjungiame ASK, ADSC->1
//pradėti vienkartinį konvertavimą
//ADFR->1 Laisvo konvertavimo režimas,
//ADIE - konvertavimo pertraukties įjungimas
//ADPS - skirtas ASK veikimo spartai keisti
//pagal kvarcinį rezonatorių
ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADIF )|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)
|-(1<<ADPS0);
_SEI(); // Globalių pertraukčių įjungimas
while(1)
{} // Amžinas ciklas
}
// ASK pertraukties paprogramė
#pragma vector=ADC_vect
__interrupt void Analog()
{
char a; // Tarpinio kintamojo išskyrimas
a=ADCH;// nuskaitom
if (i==0) {
if (a>5) {PORTB=1; Laikas2(10);}
i=1;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX1)|(0<<MUX0);
if (a>5) {PORTD=1; Laikas2(10);}
i=0;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX4)|(1<<MUX1)|( 1<<MUX0);
if (a>10){PORTB=3; Laikas2(30);}
i=1;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX1)|(0<<MUX0);
if (a>10){PORTD=3; Laikas2(30);}
i=0;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX4)|(1<<MUX1)|( 1<<MUX0);
if (a>15){PORTB=7; Laikas2(50);}
i=1;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX1)|(0<<MUX0);
if (a>15){PORTD=7; Laikas2(50);}
i=0;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX4)|(1<<MUX1)|( 1<<MUX0);
if (a>20){PORTB=15; Laikas2(100);}
i=1;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX1)|(0<<MUX0);
if (a>20){PORTD=15; Laikas2(100);}
i=0;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX4)|(1<<MUX1)|( 1<<MUX0);
if (a>26){PORTB=31; Laikas2(200);}
i=1;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX1)|(0<<MUX0);
if (a>26){PORTD=31; Laikas2(200);}
i=0;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX4)|(1<<MUX1)|( 1<<MUX0);
if (a>33){PORTB=63; Laikas2(300);}
i=1;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX1)|(0<<MUX0);
if (a>33){PORTD=63; Laikas2(300);}
i=0;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX4)|(1<<MUX1)|( 1<<MUX0);
if (a>39){PORTB=127;Laikas2(400);}
i=1;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX1)|(0<<MUX0);
if (a>39){PORTD=127;Laikas2(400);}
i=0;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX4)|(1<<MUX1)|( 1<<MUX0);
if (a>44){PORTB=255;Laikas2(500);}
i=1;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX1)|(0<<MUX0);
if (a>44){PORTD=255;Laikas2(500);}
i=0;
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX4)|(1<<MUX1)|( 1<<MUX0);
}
}
// Laiko vėlinimo paprogramė
void Laikas2(unsigned int m)
{
unsigned int i=0, k=0;
for (i=0; i<m; i++)
{
for (k=0; k<90; k++){}}} |
Atsakymai (0) |
Aurimas |
2006-11-06 20:50 |
|
Hmm. Nu aisku su jumis... |
Atsakymai (0) |
Aurimas. |
2006-10-30 20:38 |
|
O tai gal kas galit imest programa istaisyta? |
Atsakymai (0) |
Darius to Sarunas |
2006-08-27 14:33 |
|
Teisingas pastebejimas ADFR turi buti ADATE ir vietoj antro ADFR panaudojimo ADIE.
Gerai, kad pastebite klaidas juk tai skatina mokinimasi :) |
Atsakymai (0) |
Sarunas |
2006-07-02 15:15 |
|
Gerai kodas ish dalies liktai ir aishkus, bet ish kur tas ADFR ishtrauktas??? iom16.h nera ten tokio, o ir datasheet'e apie toki neuzhsimenama.
ADCSRA bitai yra: ADEN, ADSC, ADATE, ADIF, ADIE, ADPS2, ADPS1, ADPS0 |
Atsakymai (0) |
RedGrimlin |
2006-02-17 18:36 |
|
tos labiau juodos linijos reiskia kad reikia taip viska uztrumpint ar, kad kiekviena kojele atskirai nuvest i sava dioda? |
Atsakymai (0) | |
|
|
|
|
|
|