 |

|
|
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, 18:07. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » ATMEGA8 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 2 iš 2 Pereiti prie Atgal 1, 2 |
|
 |
ATMEGA8 PWM:) |
Parašytas: 2006 07 17, 22:14 |
|
|
|
|
nenoriu sumeluot, bet ar tik ne PINx registra reik tikrint. neatsimenu dabar tiksliai kaip ant avr yra.
prescaler - daznio daliklis. nudalina dazni. ju visur pilna - ADC, taimeriai ir kt. periferija turi savo prescalerius, kad sistema butu universalesne. kvarcas vienas, o daznius turi kelis (aisku kartotinius kvarco dazniui). |
|
|
|
|
|
 |
 |
ATMEGA8 PWM:) |
Parašytas: 2006 07 17, 22:42 |
|
|
|
|
| edvintas rašo: |
bet nelabai suprantu ką tas prescaleris veikia?
TOP - 16, OCR - pulso plotis, prescaleris žingsnių skaičius ar kaip?
|
prescaleris tai skaitliukas kuris mazina daznuma n kartu, ir is kurio negalima perskaityti tarpimiu reiksmiu. sakykim duodame 10mhz gauname 5mhz
| Citata: |
ta formulė iš datsheet'o f=clk/(N*(1+TOP)) tai iš čia man atrodo, kad prescaleris yra tai kiek kartų timeris turi prasisukti nuo 0 iki TOP? teisingai supratau?
tarkim TOP yra 2 preskaleris 32 tai PWM'as turės 64 žingsnius...?
bet čia kažkas nelogiška  |
tai ka pasakei nelogiska, bet viskas labai paptasta kaip codec sake
yra kvarcas, jo daznuma dainame prescaleriu, o tada duodame i pwm taimeri.
| Citata: |
Kad žiūriu atmega8 interuptus turi tik ant 4 ir 5 kojos
nu bet tas variantas kur parašiau tai be interuptų tiesiog kai sujungtas pinas su GND turi būti 1 if((PORTD & 0b00000001) == 0b00000001) pwm++; bet kažkodėl tas if'as nelabai veikia  |
atmega neturi daug interupptu, attiny2326 atrodo turi daug on change iejimu ir dar 60mhz pwm su pll.
tavo uzrasymas per sudetingas ir dar netesingas(cia ne pic o avr) rasyk taip
if(PIND & 0b00000001) pwm++;
ir nepamirsk padaryti DDRD=0b00000001; ir PORTD=0b00000001
kad ijungti pullup. tada reikes tik vieno jungiklio i korpusa
programa bus tokia
if(!(PIND & 0b00000001)) pwm++; |
|
|
|
|
|
 |
 |
ATMEGA8 PWM:) |
Parašytas: 2006 07 17, 23:14 |
|
|
|
|
| Kodas: |
#include <avr/io.h>
#include <avr/iom8.h>
#include <avr/delay.h> //f=16000000/(N*(1+TOP)) 31250Hz
int i,j,pwm;
int main()
{
DDRB = 0b00001110;
DDRD = 0b00000011;
PORTD = 0b00000011;
///Fast PWM TOP=ICR1///
TCCR1A = 0xA2;//COM1A1; COM1B1; WGM11;
TCCR1B = 0x1A;//WGM13; WGM12; CS12; CS10;
/////////////////////// N = 0x1D-1024; 0x1C-256; 0x1B-64; 0x1A-8; 0x19-1;
ICR1 = 16;
OCR1A = 0;
OCR1B = ICR1;
while(1)
{
OCR1A = pwm;
OCR1B = ICR1-pwm;
for(i=0;i<30000;i++);
if((PIND & 0b00000001) && (pwm < ICR1)) pwm++;
if((PIND & 0b00000010) && (pwm > 0)) pwm--;
}
return 0;
} |
su mygtukais viskas aišku
bet dabar neaišku kodėl OCR registre įrašius 0 LED silpnai šviečia.. turėtų išviso nešviesti, ar neturėtų? ar čia hardwarinio pwm'o bug'as koks nors?
| Citata: |
| atmega neturi daug interupptu, attiny2326 atrodo turi daug on change iejimu ir dar 60mhz pwm su pll. |
gal kartais turėjai omeny 2313? žiūriu tas labai tiktų greičio reguliatoriui.. ir krūvai servų valdyt  |
|
|
|
|
|
 |
 |
ATMEGA8 PWM:) |
Parašytas: 2006 07 17, 23:58 |
|
|
|
|
kodel sviecia nezinau, reiketu osilografu paziureti kas ten isejime yra tada, gal sakau irasisu 0 bus is tikruju kaip ir vienetas o ne nulis.
koks ten tas attiny neatsimenu turbut 2313, ten labai neblogas dalykas, gaila nei venas atmega tokiu funkciju neturi |
|
|
|
|
|
 |
ATMEGA8 PWM:) |
Parašytas: 2006 07 18, 11:55 |
|
|
|
|
|
_________________ Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.
Skype : VytautasRX |
|
|
|
 |
ATMEGA8 PWM:) |
Parašytas: 2006 07 18, 16:01 |
|
|
|
|
attiny2313
Zinoma 60Mhz(max 70mhz) pwm iejimas. padalinus is 256 ar 65000 tas daznis sumazes. bet vistieks bus gana neblogas
tam procesorisui ir kvarco nereikia nes gali ta pati generatoriu panaudoti 16mhz daznumui gauti. |
|
|
|
|
|
|
 |
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 |
 |
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 |
|

|
 |