 |

|
|
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 24, 01:34. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Keli PWM signalai vienu metu
|
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
|
|
|
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 26, 18:48 |
|
|
|
|
| Digix rašo: |
arba galima laukti po kiekvieno simbolio pasiuntimo. |
skykim jei boud rate=2400, tai yra 1/2400=~0.000416s vienam bitui
eina 8bitai+parity ir stop bitas=10,tai vieno baito usart buferis atsilisvina po~0.00416s, tai reiketu po kiekvieno simbolio issiuntimo padaryt koki delay_ms(5); ar ne visai taip mastau?
p.s.kaip su tuo putchar ir udr, ka naudot geriau? |
|
|
|
|
|
 |
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 26, 20:01 |
|
|
|
|
| Digix rašo: |
siusti galima tik po viena raide vienu metu nes atmega neturi jokio FIFO.
tau reikia pasidaryti funkcija kuri siustu tesktine eilute.
ta galima padaryti su prtraukimais naudojant softwarini FIFO buferi
arba galima laukti po kiekvieno simbolio pasiuntimo. |
meluoji...
turi hardvarinį fifo. pirma eina į udr, po to į shift register.
o šiaip delay nereikia daryti, užtektų patikrinti UDRE bitą USART viename kontrolinių registrų (aprašyme net pavyzdys žinau yra).
| Kodas: |
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}
|
sėkmės programinant. |
|
|
|
|
|
 |
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 26, 20:16 |
|
|
|
|
| evvaldis rašo: |
| Digix rašo: |
arba galima laukti po kiekvieno simbolio pasiuntimo. |
skykim jei boud rate=2400, tai yra 1/2400=~0.000416s vienam bitui
eina 8bitai+parity ir stop bitas=10,tai vieno baito usart buferis atsilisvina po~0.00416s, tai reiketu po kiekvieno simbolio issiuntimo padaryt koki delay_ms(5); ar ne visai taip mastau?
p.s.kaip su tuo putchar ir udr, ka naudot geriau? |
reikia naudoti ne delay, o yra kazkoks statuso registras pagal kuri galima patikrinti.
bet naudok putchar, ir nereikes nieko vargintis ta funkfija pati pasirupins.
bet jei uart sustabdyri tai tada putchar irgi uzstrigs |
|
|
|
|
|
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 26, 20:18 |
|
|
|
|
[quote="R2D2"]
| Digix rašo: |
meluoji...
turi hardvarinį fifo. pirma eina į udr, po to į shift register.
|
nu vieno baito registro fifo kažkaip nesinori vadinti, kad bent 2 registrai butu. |
|
|
|
|
|
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 26, 21:22 |
|
|
|
|
vienas baitas tai vis šis tas
dėl ENTER, tai siunti 0xD ir 0xA
tipo carriage return ir new line.
kad tu tik grąžini į pradžią, dėl to ir atrodo, kad nepaspaudei. paspaudi enter, tai dar kartą grąžinį į pradžią ir primeti eilutę naują. |
|
|
|
|
|
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 26, 21:39 |
|
|
|
|
| evvaldis rašo: |
biski nebe i tema bet ka siust norint gaut enter klaviso paspaudima?
http://www.lynxmotion.com/images/html/build136.htm
parasyta, kad: <cr> Carriage return character, ASCII 13 (Required to initiate action), bet parasius komanda pvz #5 P1600 S750 <cr> i terminala vistiek ji nebuna vykdoma kol nepaspaudziu papildomai ENTER...  |
tu biski per toli nuejai.
is principo tau niekam nereikia viso to daryti C kalboje. tam yra printf() funkcija
ir jei nori priimti komandas galima scanf() pasinaudoti
kad pasiusti ta eilute i uart tereikia parasyti sitaip:
printf("#5 P1600 S750\n") |
|
|
|
|
|
 |
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 26, 23:40 |
|
|
|
|
| Digix rašo: |
| evvaldis rašo: |
P.S.kokia sintakse butu norint nusiust per uart sakykim #5 P1600 S750 <cr> teksta, kuriame 1600 ir 750 yra skaiciai gauti is kintamuju...
pabandymui bandziu siust teksta Za
su UDR='Za' gaunu aaaaaaaaaaaaaaaaaaaaaaaaaaaa.........
su UDR='Z'; UDR='a'; gunu ZZZZaZZZZaZZZZaZZZZaZZZZa..........
 |
UDR='Za' UDR yra 8 bitu registras, 'Za' tai tus 16 bitu
siusti galima tik po viena raide vienu metu nes atmega neturi jokio FIFO.
tau reikia pasidaryti funkcija kuri siustu tesktine eilute.
ta galima padaryti su prtraukimais naudojant softwarini FIFO buferi
arba galima laukti po kiekvieno simbolio pasiuntimo. |
tai as pagal tai buvau suprates kad negalima
printf("#5 P1600 S750\n") yra visa reikiama eilute ar reikia rasyt kazka mazdaug UDR=printf("#5 P1600 S750\n") ? |
|
|
|
|
|
 |
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 27, 02:30 |
|
|
|
|
cia dabar viskas nuo kompiliatoriaus priklauso.
paprasciausia tau butu susirasdti pavyzdi arba paskaityti helpe kaip naudojamas printf
bet jei tu sugebejai parasyti sitaip
| Citata: |
| UDR=printf("#5 P1600 S750\n") ? |
tai cia jau ko gero tavo programavimo stazas dar nevirsyja valandos.
printf tai vos ne pagrindine C klbos funkcija del kurios daug kas ta C kalba keikia, nes sita funkcija sueda labai daug atminties. del savo didelio sudetingumo ir galimybiu. |
|
|
|
|
|
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 31, 16:49 |
|
|
|
|
kai sujungta bent 6vnt servu ant ssc32 plokstes, jas visas "startuojant" vienu metu krenta itampa(maitinu 4vnt. AA) ir nusimusa(nusiresetina) procas...
Kokie butu sprendimai nenaudojant atskiro maitinimo logikai ir servom? kruva elektrolitu kazkiek padejo, bet nevisai... Gal mazo impedianso elektrolitai butu kaiptik servu maitinimo taske? |
|
|
|
|
|
 |
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 05 31, 21:46 |
|
|
|
|
| evvaldis rašo: |
kai sujungta bent 6vnt servu ant ssc32 plokstes, jas visas "startuojant" vienu metu krenta itampa(maitinu 4vnt. AA) ir nusimusa(nusiresetina) procas...
Kokie butu sprendimai nenaudojant atskiro maitinimo logikai ir servom? kruva elektrolitu kazkiek padejo, bet nevisai... Gal mazo impedianso elektrolitai butu kaiptik servu maitinimo taske? |
procesoriu usmaitink per varza arba dioda, taip kad servo varikliai neisiurbtu is procesoriaus kondenastoriu energijos.
jei tik uzdesi kondensatorius tai naudos bus mazai, |
|
|
|
|
|
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 06 01, 09:05 |
|
|
|
|
sheiptai nuo barateiku procas ir servai turi maitintis atskirai.
pas mane ssc-32 procas ir servai dirba nuo atskiru licio bateriju(3v 6Ah 6V11Ah ) ir jokiu bedu
arba naudok akumoliatoriu ne baterijas itampa netaip staigiai krenta |
|
|
|
|
|
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 06 02, 15:25 |
|
|
|
|
Tai akumai pas mane 4x 1200mah NiMh AA..Turbut teks lipo naudot 2cell 7.4v + stabilizatorius  |
|
|
|
|
|
 |
Keli PWM signalai vienu metu |
Parašytas: 2009 06 03, 09:18 |
|
|
|
|
| dar patarimas: kuo arciau prie proco maitinimo 5V kojos prilituok 100N konda i zeme, aisku jei jo dar nera. |
|
_________________ Aš pažeidžiau forumo taisykles ir reklamavau paraše. ...Bet uz reklama tai susimokejau  |
|
|
|
|
 |
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 |
|

|
 |