 |

|
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, 12:21. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Atmega PWM
|
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
|
|
|
 |
 |
 |
Atmega PWM |
Parašytas: 2006 08 18, 01:03 |
|
|
|
Pabandęs pavyzdį iš šio straipsnelio su PWMhttp://www.elektronika.lt/schematic/theme/67/4537/ , pamačiau, kad vyksta tik lėtas užgesimas. Gal kas galit padėti modifikuoti kodą, kad vyktų ir lėtas užsidegimas? Pradinis kodas:
Kodas: |
#include <iom16.h>
void velinam(unsigned int a); //Apibrėžiamas vėlinimas su kintamuoju
int main( void )
{DDRD=255;
unsigned int b=0; // Įsivedam kintamąjį, reguliuosiantį diodų
palaipsnį užgesimą
while(1){
b++; //Didinama kintamojo b reikšmė
PORTD=0; // Išjungiam visus prie PD prijungtus diodus
velinam(b); // Kintamas vėlinimas, kadangi didėja kintamojo b
reikšmė, todėl vėlinimas šiame intervale didėja
PORTD=255;// Įjungiam visus prie PD prijungtus diodus
velinam(2000-b); // Mažinamas vėlinimas. Tai garantuoja 2000-b
if (b==2000){b=0;}// Tikriname ar kintamasis b pasiekė 2000 reikšmę,
jei taip, nustatome jį į pradinę būseną
}}
void velinam(unsigned int a) // Kintamo vėlinimo funkcija, kitimas
perduodamas per a kintamąjį
{unsigned int i=0;
for(i=0; i<a; i++){
}} |
Būsių dėkingas už pagalbą pradedančiajam  |
|
|
|
|
 |
 |
Atmega PWM |
Parašytas: 2006 08 18, 08:06 |
|
|
|
- Pradžioje vietoj "b=0" parašyk "b=2000";
- Vietoj "b++" parašyk "b--";
- vietoj "velinam(2000-b)" parašyk "velinam(b)";
- vietoj "if b==..." parašyk "if (b==0) b=2000;"
Turetu buti viskas. |
|
|
|
|
 |
Atmega PWM |
Parašytas: 2006 08 19, 20:24 |
|
|
|
Pakeičiau kaip rašėt, bet šviesos diodai tik šviečia
Programos kodas po pakeitimų:
Kodas: |
#include <iom16.h>
void velinam(unsigned int a);
int main( void )
{DDRD=255;
unsigned int b=2000;
while(1){
b--;
PORTD=0;
velinam(b);
PORTD=255;
velinam(b);
if (b==0){b=2000;}
}}
void velinam(unsigned int a)
{unsigned int i=0;
for(i=0; i<a; i++){
}} |
|
|
|
|
|
 |
Atmega PWM |
Parašytas: 2006 08 19, 20:36 |
|
|
|
Dovydas rašo: |
Pakeičiau kaip rašėt, bet šviesos diodai tik šviečia |
Gali būti, kad per maži tie užlaikymai, ir akis net negali pastebėti kaip jie užgęsta/užsidega. Pabandyk padidinti konstantas iki kokių 65500. Turėtų suveikti. Nes klaidų lyg ir nematau. |
|
|
|
|
 |
Atmega PWM |
Parašytas: 2006 08 19, 21:02 |
|
|
|
Benagrinėdamas programos kodą, po keletos bandymų sugalvojau kažką veikiančio Dabar šviesos diodai gražiai užsidega ir gražiai užgesta. Tikriausiai kodas nėra labai efektyvus, bet mano sugalvotas
Kodas: |
#include <iom16.h>
void velinam(unsigned int a);
int main( void )
{DDRD=255;
unsigned int b=0, d=0;
while(1){
if (d==1){
b++;
PORTD=0;
velinam(b);
PORTD=255;
velinam(2000-b);
if (b==2000){b=0; d=0;}
}
if (d==0){
b++;
PORTD=255;
velinam(b);
PORTD=0;
velinam(2000-b);
if (b==2000){b=0; d=1;}
}
}}
void velinam(unsigned int a)
{unsigned int i=0;
for(i=0; i<a; i++){
}} |
|
|
|
|
|
|
 |
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 |
|

|
 |