Elektronika.lt
 2025 m. gruodžio 20 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

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 12 20, 11:26. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Sinusinio signalo darymas su 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
 
  
Puslapis 22
Pereiti prie Atgal  1, 2
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 20, 15:33 Pranešti apie taisyklių pažeidimą Atsakyti su citata
minivaler
Naujokas
Naujokas
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Jeigu ir nesupranti vokiskai paziurek:
http://www.avr-asm-tutorial.net/avr_de/praesentation/Teil_8_Beispiel_11.pdf#search=%22PWM%20sinus%22

http://www.lemps.ch/tipps/sin50/sinusgenerator.html#a3
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 26, 21:53 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytautasr
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Pasimečiau programoj, šita programa tiesiog turėtų uždegti šv. diodą. bandžiau puse dienos visokiais būdais paleisti, esme tame, kad pradžioj (žiūrint oscilografu) atsiranda pašalinių impulsų Sad

Kas čia negerai?

Kodas:
#include "iotiny2313.h"
  void main(){
      int a=0,p=0;
      int h[21];
      long f;
           
      DDRB=(1<<DDB2)|(1<<DDB3)|(1<<DDB4);
      TCCR0A=(1<<COM0A1)|(1<<COM0B1)|(1<<WGM00);
      TCCR0B=(1<<CS01)|(0<<CS01);
     
            h[0]=0;
            h[1]=20;
            h[2]=40;
            h[3]=60;
            h[4]=79;
            h[5]=97;
            h[6]=116;
            h[7]=133;
            h[8]=150;
            h[9]=166;
            h[10]=181;
            h[11]=194;
            h[12]=207;
            h[13]=217;
            h[14]=227;
            h[15]=236;
            h[16]=232;
            h[17]=248;
            h[18]=250;
            h[19]=254;
            h[20]=255;         
      while(1){
      for (f=0; f<100000; f++){};
        p++;
        if (p==21) p=20;
      OCR0A=h[p];
      }
  }

Reikia pastebėti, kad pakeitus int h[21]; į int h[17]; pradeda veikti gerai. o pakeitus iki int h[30]; nebeveikia iš viso.

_________________
Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.

Skype : VytautasRX
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 26, 22:07 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytautasr
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
int h[17];



int h[21];



Kiek aš suprantu, nuo masyvo dydžio išvis niekas neturėtu keistis, bet nustačius 30 niekas neveikia. Kame šaknys? Confused

Įtampa pačioj pradžioj truputi nukrenta dėl to, kad uždėta kondensatorius į korpusą.

_________________
Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.

Skype : VytautasRX
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 26, 22:26 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vakaras
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Taigi naturalu kad neveikia. Pasiziurek i programa. Esi parashes, kad jei pasiekia 21, vel p=20. Tai čia ir sustoja. 30-ies niekad ir nepasieks.
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 26, 22:30 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Vytautasr rašo:
Pasimečiau programoj, šita programa tiesiog turėtų uždegti šv. diodą. bandžiau puse dienos visokiais būdais paleisti, esme tame, kad pradžioj (žiūrint oscilografu) atsiranda pašalinių impulsų Sad

Kas čia negerai?

Reikia pastebėti, kad pakeitus int h[21]; į int h[17]; pradeda veikti gerai. o pakeitus iki int h[30]; nebeveikia iš viso.


visus pirma C kalboje h[] rasoma masyvo dudis todel 0-20 bus 21 reiksme, todel ir reikia rasyti char h[21]

bet geraiu daryk taip:

char h[20]={1,2,3,4,5,6....... } cia ir surasyk visas 20 reiksmiu.
(reiksmes neturi virsyti 127 jei datai 1/4 periodo)
arba surasyk pilna sinusoides perioda nuo 0 iki 360 laipsniu

o siaip tau vsikas veikia taip kaip parasei.
jei atminties netruksta surasyk viso periodo reiksmes, tai nerekes sukti galvos su visokiom manipulacijom. bet siaip tai si 1/4 periodo reiketu daryti sitaip

tas skaicius 127 turi buti nulinis signalo lygis, nes neigiamu skaiciu naudoti negalima maksimalus h ne daugiau 127

while(1){
// 0-90laipsniu
for (p=0; f<20; p++){
OCR0A=h[p]+127;
};
//90- 180 laipsniu
for (p=20; f>0; p--){
OCR0A=h[p]+127;
}

// 180-270laipsniu
for (p=0; f<20; p++){
OCR0A=127-h[p];
};
//270-360 laipsniu
for (p=20; f>0; p--){
OCR0A=127-h[p];
}


}
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 27, 21:27 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytautasr
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
vakaras rašo:
Taigi naturalu kad neveikia. Pasiziurek i programa. Esi parashes, kad jei pasiekia 21, vel p=20. Tai čia ir sustoja. 30-ies niekad ir nepasieks.

Jūs ne taip supratot. aš tą 30 kai pvz. daviau, pas mane tų reikšnių iš viso 20 ir yra.

Kodas:
visus pirma C kalboje h[] rasoma masyvo dudis todel 0-20 bus 21 reiksme, todel ir reikia rasyti char h[21]


Aš taip ir parašiau tik ne char o int.

Jūs nesupratot mano problemos Sad
Pas mane daug gilesnė problema, galbūt IAR'as kažką kreivai sukompiliuoja, dar nežinau, bet man neveikia ši elementari programa. Pas mane tiesiog turi užsidegti šv. diodas, bet užsidega nevisai kaip reikia Sad

_________________
Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.

Skype : VytautasRX
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 27, 22:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nu ziurint i osilogramas viskas veikia kaip parasyta programoje.

nelabai suprantu kas dar kitaip ten turi buti
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 27, 22:21 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytautasr
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Antroj nuotraukoj kai masyvo dydis 21, pradžioj pakyla, nusileidžia, pakyla per kelis pasilaiko ir toliau kyla gerai. Va ta pradžia man nesuprantama. Juo labiau kaip tai gali proklausyti nuo masyvo dydžio. Nieko nebesuprantu Confused

Arba galiu užduot kitaip klausimą. Kodėl masyvą padarius 30'ies išviso niekas neveikia?

_________________
Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.

Skype : VytautasRX
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 27, 22:30 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytautasr
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
parašius kaip siūlei:
Kodas:
int h[20]={20,40,60,79,116,133,150,166,181,194,207,217,227,234,232,248,250,254,255};

Klaida:
Error[e46]: Undefined external "ML_FLASH_SRAM_16EC_8_L07" referred in 2 ( D:\kita\dev\uC\linui\Debug\Obj\2.r90 )

SRAM'o trūkume ir yra visa esmė? Bet int pakeitus į char klaida lieka. Sad Dar kažkas negerai Rolling Eyes

_________________
Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.

Skype : VytautasRX
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 27, 22:59 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jei tu naudoji attiny tai gali buti kad atminties nepakanka,
tavo CPU turi 128 baitus o 30 int masyvas sunaudoja 60 baitu.

visu pirma int masyvas tau nereikalingas, tau uztenka char, o antra daryk flash masyva, bet nezinau ar palaiko tavo kompiliatorius.

as tai naudoju codevision ir viskas gerai ir paprastai.



o saip kas tau su ta pradzia negerai? man tai atrodo veikia normaliai.
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 27, 23:18 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytautasr
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
1. Pradžia
2. pirma reikšmė.
3. Krenta į nulį (blogai)
4. pakyla per kelis laiptus.(blogai)

_________________
Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.

Skype : VytautasRX
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 27, 23:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytautasr
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Radau kaip irašyti š flash.
Citata:
How to put strings into flash

The idea here is to override each string in the code so that it ends up in flash.

__flash char str1[] = "abcdef";
__flash char str2[] = "ghi";
__flash char __flash * pVar[] = { str1, str2 };


http://supp.iar.com/Support/?note=86174&from=search+result

Tagi parašius:
Kodas:
__flash int __flash * h[]={20,40,60,79,116,133,150,166,181,194,207,217,227,234,232,248,250,254,255};

arba
Kodas:
__flash int __flash * h[20]={20,40,60,79,116,133,150,166,181,194,207,217,227,234,232,248,250,254,255};


meta klaidą:
Kodas:
Error[Be009]: memory attributes not allowed on auto variables or parameters

Ką tai galėtų reikšti ?

_________________
Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.

Skype : VytautasRX
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 28, 00:19 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
flash masyvai manau turi buti globalus, ju negalima daryti funkcijos viduje
viduje sukurti kintamieji dedemi i steka.


del tos pradzios tai labai sunku kaska pasakyti kai nera pilno periodo sinusoides.
gali buti kad pwm registrui npatinka nuline reiksme o va ta 4 vieta gana keistai atrodo, per ilgai laikosi tas pats lygis, visu laiktu plotis turetu buti vienodas

geraiu padaryk kad tas signalas kartotusi o ne sustotu, nes pagal viena gabala nesimato kas vyksta
pataisyk
if (p==21) p=20;
i
if (p==21) p=0;
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 28, 07:22 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vakaras
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Vytautasr rašo:
Tagi parašius:
Kodas:
__flash int __flash * h[]={20,40,60,79,116,133,150,166,181,194,207,217,227,234,232,248,250,254,255};
meta klaidą:

Tai kad nesąmonę parašei. Rašyk:
Kodas:
__flash unsigned char h[] = {20,40,60,79,116,133,150,166,181,194,207,217,227,234,232,248,250,254,255};
 Sinusinio signalo darymas su PWM
PranešimasParašytas: 2006 08 28, 19:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vytautasr
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Dėkui, susitvarkiau Smile

_________________
Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.

Skype : VytautasRX
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie Atgal  1, 2
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

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
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
Must have farming mods
Farming simulator modhub, Best farming simulator mods
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
Mokslo festivalis „Erdvėlaivis žemė“
www.mokslofestivalis.eu
Reklama


Reklama