Assembler - pomoc

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
Bird
Používateľ
Používateľ
Príspevky: 2025
Dátum registrácie: So 15. Aug, 2009, 22:39
Bydlisko: TO

Assembler - pomoc

Príspevok od používateľa Bird »

Zdravim chalani.

potreboval by som pomôcť s assemblerom, mam z toho jednu ulohu do školy ale nie som v tom velmi zbehlý.
jedna sa o čip PIC16F877A na kite PVK40

už mám hotovú skoro celú úlohu len potrebujem tento cyklus
https://www.dropbox.com/s/8qzu9i39dq8d2 ... 282%29.TXT
zmeniť tak aby prebehol za 0,3 sekundy. teraz je to za 0,5 sekundy. (je to pre blikanie LEDky)

niekto ochotný sa na to prosím pozrite :) ďakujem
MacBook Pro 13 (2016) + iPhone 12 mini
PS5 Slim
Používateľov profilový obrázok
Shatterhand
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3076
Dátum registrácie: Št 26. Mar, 2009, 16:45
Bydlisko: Bratislava

Re: Assembler - pomoc

Príspevok od používateľa Shatterhand »

A frekvencia oscilátora je aká?
"Mind always fails first". "The darkest places in hell are reserved for those who maintain their neutrality in times of moral crises." "Tvrdiť, že vám nezáleží na práve na súkromie, lebo nemáte čo skrývať...je to isté...ako keď poviete, že vám nezáleží na slobode prejavu, lebo nemáte čo povedať."
Spoiler: ukázať
#1 PC: CPU Intel Core i7 920 rev. D0@2.93GHz MB ASUS P6T Deluxe V2 GPU Sapphire Radeon HD5850 Toxic RAM 3x4GB kit 1333Mhz HDD Seagate Barracuda 7200.12 1TB PSU Enermax Liberty ELT 500W 80+ CASE Thermaltake Swing
#2 PC: CPU Intel Xeon L5639@2.4GHz MB MSI Eclipse SLI GPU AMD Radeon HD7970 GHz Ed. W3X RAM 3x4GB Kingston KHX 1600MHz CL9 @1333Mhz HDD#1 Crucial MX100 250GB @SATAII PSU Enermax Revolution 950W 80+ Silver CASE Enermax iVektor black Chladenie CM Seidon 120V-FAN Enermax Magma @CPU; 3x Noctua NF S12B FLX - 3x top push
Používateľov profilový obrázok
Bird
Používateľ
Používateľ
Príspevky: 2025
Dátum registrácie: So 15. Aug, 2009, 22:39
Bydlisko: TO

Re: Assembler - pomoc

Príspevok od používateľa Bird »

3,276MHz
MacBook Pro 13 (2016) + iPhone 12 mini
PS5 Slim
Používateľov profilový obrázok
Shatterhand
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3076
Dátum registrácie: Št 26. Mar, 2009, 16:45
Bydlisko: Bratislava

Re: Assembler - pomoc

Príspevok od používateľa Shatterhand »

Až to správne chápem, jeden cyklus je 76,3 ns.
Teda je treba 6 552 000 hodinových cyklov na 0,5 sekundy
...to vychádza podľa komentu z druhého riadka z toho vzťahu frekvencie oscilátora;
na 0,3 sekundy bude treba 3 931 200 cyklov.

Ten kód nie je celý takže takto si to buď vyriešiš sám, a to tak že si trojčlenkou zistíš akým číslom to musíš predeliť, aby si dostal 0,3 sekundy, keď už 0,5 sekundy vieš.
"Mind always fails first". "The darkest places in hell are reserved for those who maintain their neutrality in times of moral crises." "Tvrdiť, že vám nezáleží na práve na súkromie, lebo nemáte čo skrývať...je to isté...ako keď poviete, že vám nezáleží na slobode prejavu, lebo nemáte čo povedať."
Spoiler: ukázať
#1 PC: CPU Intel Core i7 920 rev. D0@2.93GHz MB ASUS P6T Deluxe V2 GPU Sapphire Radeon HD5850 Toxic RAM 3x4GB kit 1333Mhz HDD Seagate Barracuda 7200.12 1TB PSU Enermax Liberty ELT 500W 80+ CASE Thermaltake Swing
#2 PC: CPU Intel Xeon L5639@2.4GHz MB MSI Eclipse SLI GPU AMD Radeon HD7970 GHz Ed. W3X RAM 3x4GB Kingston KHX 1600MHz CL9 @1333Mhz HDD#1 Crucial MX100 250GB @SATAII PSU Enermax Revolution 950W 80+ Silver CASE Enermax iVektor black Chladenie CM Seidon 120V-FAN Enermax Magma @CPU; 3x Noctua NF S12B FLX - 3x top push
Používateľov profilový obrázok
Bird
Používateľ
Používateľ
Príspevky: 2025
Dátum registrácie: So 15. Aug, 2009, 22:39
Bydlisko: TO

Re: Assembler - pomoc

Príspevok od používateľa Bird »

ďakujem za pomoc ;-)
btw.
Shatterhand napísal:Až to správne chápem, jeden cyklus je 76,3 ns.
Teda je treba 6 552 000 hodinových cyklov na 0,5 sekundy
...to vychádza podľa komentu z druhého riadka z toho vzťahu frekvencie oscilátora;
na 0,3 sekundy bude treba 3 931 200 cyklov.
si si istý ? veď aj v komentári je písané ;=> we need 409600 cycles takže pre 0,3 sekundy treba 245760 nie ?
všimol som si že ten vzorový príklad je tiež pre 3,276MHz takže by to malo byť tých 409 600 nie 6 552 000.
ale možno sa mýlim. toto mi velmi nejde :)
MacBook Pro 13 (2016) + iPhone 12 mini
PS5 Slim
Používateľov profilový obrázok
Shatterhand
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3076
Dátum registrácie: Št 26. Mar, 2009, 16:45
Bydlisko: Bratislava

Re: Assembler - pomoc

Príspevok od používateľa Shatterhand »

No... :red: Dal by som ruku do ohňa za to, že včera bola tá 4-ka mimo zátvorky :D

Takto to zhruba sedí, oni zrejme zaokrúhľovali alebo čo, čiže 0,5 sekundy je 409 500 cyklov.
0,3 sekundy potom bude 245 700 cyklov.

Už si to len premeň na hexa a prepíš to.
"Mind always fails first". "The darkest places in hell are reserved for those who maintain their neutrality in times of moral crises." "Tvrdiť, že vám nezáleží na práve na súkromie, lebo nemáte čo skrývať...je to isté...ako keď poviete, že vám nezáleží na slobode prejavu, lebo nemáte čo povedať."
Spoiler: ukázať
#1 PC: CPU Intel Core i7 920 rev. D0@2.93GHz MB ASUS P6T Deluxe V2 GPU Sapphire Radeon HD5850 Toxic RAM 3x4GB kit 1333Mhz HDD Seagate Barracuda 7200.12 1TB PSU Enermax Liberty ELT 500W 80+ CASE Thermaltake Swing
#2 PC: CPU Intel Xeon L5639@2.4GHz MB MSI Eclipse SLI GPU AMD Radeon HD7970 GHz Ed. W3X RAM 3x4GB Kingston KHX 1600MHz CL9 @1333Mhz HDD#1 Crucial MX100 250GB @SATAII PSU Enermax Revolution 950W 80+ Silver CASE Enermax iVektor black Chladenie CM Seidon 120V-FAN Enermax Magma @CPU; 3x Noctua NF S12B FLX - 3x top push
Používateľov profilový obrázok
Bird
Používateľ
Používateľ
Príspevky: 2025
Dátum registrácie: So 15. Aug, 2009, 22:39
Bydlisko: TO

Re: Assembler - pomoc

Príspevok od používateľa Bird »

asi by si sa popálil :D ale diky za pomoc, mám to ;)
škoda že som si včera nevšimol že ten vzorový príklad bol pre čip s rovnakým oscilátorom, nemusel som otravovať :laugh:
MacBook Pro 13 (2016) + iPhone 12 mini
PS5 Slim
Používateľov profilový obrázok
Shatterhand
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3076
Dátum registrácie: Št 26. Mar, 2009, 16:45
Bydlisko: Bratislava

Re: Assembler - pomoc

Príspevok od používateľa Shatterhand »

No ja sa nepopálim, len ty budeš blbý...ako pre tvoje dobro :) Okrem toho na webe je kopa hexa/bin/dec kalkulačiek, takže tak.
"Mind always fails first". "The darkest places in hell are reserved for those who maintain their neutrality in times of moral crises." "Tvrdiť, že vám nezáleží na práve na súkromie, lebo nemáte čo skrývať...je to isté...ako keď poviete, že vám nezáleží na slobode prejavu, lebo nemáte čo povedať."
Spoiler: ukázať
#1 PC: CPU Intel Core i7 920 rev. D0@2.93GHz MB ASUS P6T Deluxe V2 GPU Sapphire Radeon HD5850 Toxic RAM 3x4GB kit 1333Mhz HDD Seagate Barracuda 7200.12 1TB PSU Enermax Liberty ELT 500W 80+ CASE Thermaltake Swing
#2 PC: CPU Intel Xeon L5639@2.4GHz MB MSI Eclipse SLI GPU AMD Radeon HD7970 GHz Ed. W3X RAM 3x4GB Kingston KHX 1600MHz CL9 @1333Mhz HDD#1 Crucial MX100 250GB @SATAII PSU Enermax Revolution 950W 80+ Silver CASE Enermax iVektor black Chladenie CM Seidon 120V-FAN Enermax Magma @CPU; 3x Noctua NF S12B FLX - 3x top push
Používateľov profilový obrázok
Bird
Používateľ
Používateľ
Príspevky: 2025
Dátum registrácie: So 15. Aug, 2009, 22:39
Bydlisko: TO

Re: Assembler - pomoc

Príspevok od používateľa Bird »

no reagoval som na toto
No... Dal by som ruku do ohňa za to, že včera bola tá 4-ka mimo zátvorky
a assembleru sa normálne nevenujeme, toto bola len taka bonusová úloha, takže neviem ako na to. Že sa cyklus ráta nejako takto ;1 cycle = 1/(Fosc/4) second a že je to nejaky vzťah s frekvenciu oscilatora som tiež nevedel.
ale najprv som si nevšimol že vo vzorovom aj v ulohe je rovnaký oscilátor, potom to vyrata trojčlenkou a premení do hexa aj blbec.
MacBook Pro 13 (2016) + iPhone 12 mini
PS5 Slim
Používateľov profilový obrázok
Shatterhand
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3076
Dátum registrácie: Št 26. Mar, 2009, 16:45
Bydlisko: Bratislava

Re: Assembler - pomoc

Príspevok od používateľa Shatterhand »

Hlavne že to máš ;)
"Mind always fails first". "The darkest places in hell are reserved for those who maintain their neutrality in times of moral crises." "Tvrdiť, že vám nezáleží na práve na súkromie, lebo nemáte čo skrývať...je to isté...ako keď poviete, že vám nezáleží na slobode prejavu, lebo nemáte čo povedať."
Spoiler: ukázať
#1 PC: CPU Intel Core i7 920 rev. D0@2.93GHz MB ASUS P6T Deluxe V2 GPU Sapphire Radeon HD5850 Toxic RAM 3x4GB kit 1333Mhz HDD Seagate Barracuda 7200.12 1TB PSU Enermax Liberty ELT 500W 80+ CASE Thermaltake Swing
#2 PC: CPU Intel Xeon L5639@2.4GHz MB MSI Eclipse SLI GPU AMD Radeon HD7970 GHz Ed. W3X RAM 3x4GB Kingston KHX 1600MHz CL9 @1333Mhz HDD#1 Crucial MX100 250GB @SATAII PSU Enermax Revolution 950W 80+ Silver CASE Enermax iVektor black Chladenie CM Seidon 120V-FAN Enermax Magma @CPU; 3x Noctua NF S12B FLX - 3x top push
Používateľov profilový obrázok
Bird
Používateľ
Používateľ
Príspevky: 2025
Dátum registrácie: So 15. Aug, 2009, 22:39
Bydlisko: TO

Re: Assembler - pomoc

Príspevok od používateľa Bird »

jj, dik :good:
pre zaujmavosť, tu je celý program https://www.dropbox.com/s/u6202df9dagjh ... mbler.docx
je to na blikanie písmen morzeovou abecedou. nie je to perfektné, napríklad ja mám blikanie písmen K U K U normálne rozpísané pre každé písmeno. ale keďže sa dve písmená opakuju lepšie by bolo vytvoriť nejake dva podprogramy, jeden pre K a jeden pre U a potom ich volať cez call. ušetrilo by sa tak miesto, ale fungovať by mala aj moja varianta.
MacBook Pro 13 (2016) + iPhone 12 mini
PS5 Slim
Používateľov profilový obrázok
Shatterhand
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3076
Dátum registrácie: Št 26. Mar, 2009, 16:45
Bydlisko: Bratislava

Re: Assembler - pomoc

Príspevok od používateľa Shatterhand »

No ono sa to samozrejme dá robiť aj cez časovač (na to sú tam špeciálne registre...neviem ako je tuná ovládaný časovač/oscilátor, ale ja som to riešil na AVR-ku), pretože takto procesor zbytočne dekrementuje hovadiny, zatiaľ čo by mohol robiť niečo užitočnejšie. Väčšinou sa to potom rieši tak, že uplynie niekoľko hodinových cyklov(koľko treba) a vyvolá sa prerušenie. Program preruší čo robil a trebárs rozsvieti LED, potom bude robiť to čo dovtedy, atď.

Pozri, keď to bola len bonusová úloha a nebudete sa tomu v škole ďalej venovať / prípadne sa nejak nechceš assembleru venovať, tak nič nerieš. Funguje to a bodka :)
"Mind always fails first". "The darkest places in hell are reserved for those who maintain their neutrality in times of moral crises." "Tvrdiť, že vám nezáleží na práve na súkromie, lebo nemáte čo skrývať...je to isté...ako keď poviete, že vám nezáleží na slobode prejavu, lebo nemáte čo povedať."
Spoiler: ukázať
#1 PC: CPU Intel Core i7 920 rev. D0@2.93GHz MB ASUS P6T Deluxe V2 GPU Sapphire Radeon HD5850 Toxic RAM 3x4GB kit 1333Mhz HDD Seagate Barracuda 7200.12 1TB PSU Enermax Liberty ELT 500W 80+ CASE Thermaltake Swing
#2 PC: CPU Intel Xeon L5639@2.4GHz MB MSI Eclipse SLI GPU AMD Radeon HD7970 GHz Ed. W3X RAM 3x4GB Kingston KHX 1600MHz CL9 @1333Mhz HDD#1 Crucial MX100 250GB @SATAII PSU Enermax Revolution 950W 80+ Silver CASE Enermax iVektor black Chladenie CM Seidon 120V-FAN Enermax Magma @CPU; 3x Noctua NF S12B FLX - 3x top push

Návrat na "Programovanie"