Warning: Illegal string offset 'name' in [path]/includes/functions.php on line 6439
Iesācēja blēņas ar 4x4 plēves klavieri -
+
1 2 3

thread: Iesācēja blēņas ar 4x4 plēves klavieri

  1. #21
    Senior Member
    Nov 2009
    Jēkabpils
    2,046

    Laikam tad sanāk, ka es tā uzrakstīju savam skaļuma regulatoram. Negribēju izmantot aiztures. Gan ne asmā un tur man tikai divi "taimeri" sanāca. Laikam tad esmu uz pareizā ceļa.

  2. #22
    Moderator
    Jan 2009
    Rīga
    4,406

    Neliela teorija pa (bez?)tēmu. Varbūt noder. ASM ir patīkams ar to ka vari visu kotrolēt un uztaisīt visu kā Tev patīk. Realizēt to, kas ar C nav realizēts vai standarta gadījumā paņem pārāk daudz resursu (atmiņa, CPU cikli utt). Iprovizācijas šovs "Spiediens" tā teikt...

  3. #23
    Senior Member
    Jun 2006
    Cēsu novads
    986

    Jā, ar 1ms izšķiršanas spēju jau kaut ko var izdarīt, bet, ja būtu darīšana, piemēram, ar auto motora vadību, tad mēģinot izmantot tādas precizitātes taimeri aizdedzes apsteidzes vadīšanai, kļūda būtu šaušalīga. Bet tam jau arī tie kontrolieri nav domāti, kaut reizēm rodas vajadzība pēc kaut kā ātra un precīza. Runājot par vairākiem neatkarīgiem skaitītājiem, izmantojot vienu taimeri - es organizēju notikumu rindu. Katru notikumu raksturo laika moments kurā šim notikumam jānotiek un kaut kādas darbības, kas šajā laika momentā jāizdara. Man ir atmelis ar 16 bitu taimeri. Vispār ar atmeļa 16 bitu aparātisko taimeri ir par īsu, tāpēc parasti pieorganizēju tam vēl vienu programmistisku baitu. Tātad notikuma laika momentu man raksturos 3 baiti. Vēl 2 baiti norādīs apakšprogrammas adresi, kura man ir jāizpilda šajā laika momentā, vēl 3 baitus saistībā ar notikumu norezervēju citiem datiem saistībā ar paredzēto notikumu. Tātad 1 notikumu man apraksta 8 baiti. Ja gribu ieplānot 8 šādus notikumus, rezervēju atmiņā 64 baitus, ja vairāk, tad attiecīgi lielāku atmiņu. Kad gaidāmo notikumu rinda tiek papildināta ar jaunu notikumu, tiek skatīta cauri jau uzsādīto notikumu rinda, un atrasta vieta jaunajam notikumam, tā lai rindā esošie notikumi būtu sakārtoti laika ziņā pieaugošā secībā. Taimera OUTPUT COMPARE pārtraukums ir uzstādīts uz laika ziņā tuvāk esošo notikumu. Pienākot šim laika momentam, tiek izpildīta attiecīgajam notikumam piesaistītā apakšprogramma un taimera pārtraukums tiek uzstādīts uz nākošo rindas elementu. Tādejādi galvenā programma visu laiku kārto un papildina rindu ar jauniem elementiem, savukārt pārtraukumi izpilda šos elementus un izmet izpildītos no rindas.

  4. #24
    Senior Member
    Nov 2009
    Jēkabpils
    2,046

    Paldies, šito tagad centīšos sagremot. Liekas, ka uz to pusi tikai primitīvā un juceklīgā veidā es darījos.

+