+ Atbildēt
Lapa 6 no 6 FirstFirst ... 4 5 6
Atbildes 51 līdz 60 no 60

Tēma: I2c uno

  1. #51
    Senior Member
    Reģistrējās
    Nov 2009
    Atrodos
    Jēkabpils
    Atbildes
    2,013

    Default

    off. M_J, wire (I2C) bibliotēka to dara. Nebija līdz šim nācies I2C izmantot. Tikai tā pamēģināju, to HTU izmantošu, bet noteikti pats uzrakstīšu vienkāršu, minimālistisku I2C "draiveri". Jā, un tam wire "kājas" šķiet aug turpat, kur serial.print, šim arī ir funkcijas, kas ļauj stringus raidīt/uztvert. Nu ja, un HTU biblene izmanto float matemātiku.

    Papētīju to Arduino oriģinālo twi.c , kas sēž zem Wire biblenes. Nesaprotu, kāda vella pēc šie izmanto pārtraukuma vektoru, ja gan rakstīšanas gan lasīšanas funkcijā ir kāda "īpaša" rinda -
    Code:
     while(TWI_MRX == twi_state)
    {
        continue;
     }
    Sanāk, kamēr state machine ir stāvoklī TWI_MRX (Master recieve), un līdzīgi pie transmit, atmelis maļ tukšo ciklu, un neko citu šajā laikā tāpat padarīt nevar. Bet, ja defaultā I2C strādā ar 100kHz, tad pie atmeļa 16Mhz, tas ir nežēlīgais lērums tikšķu. Tad jau nav nekādas vajadzības pēc pārtraukuma, pietiek ciklā baudīt pārtraukuma karogu. Jeb es kaut ko ne tā saprotu?
    Last edited by Jurkins; 14-05-2017 at 19:44.

  2. #52
    Junior Member
    Reģistrējās
    Nov 2015
    Atbildes
    21

    Default

    Nolēmu apkopot pāris atbildes uz jautājumiem kas izskanēja šai tēmā.
    1. Ledu izvēle. Izvēlējos šos, jo šiem ir vis plašākā un precīzākā spektru izvēle, jo man ir vajadzīgi konkrēti spektri, 400nm, 450nm, 490nm utt. Kāpēc ar alumīnija pamatni, tāpēc ka šie ledi silst, un tos vajag labi nodzesēt lai neizdeg. Pamatā vis lampas korpus būs no alumīnija, un ledi tiek pie tā skrūvēti. Lielās alumīnija pcb plāksnes pie kā lodēt čipus neder, jo tiem ir vai nu viens vai maksimums 3 kanāli, kā rezultātā nevaru gaismu izretināt lai tā būtu vienmērīga, nevaru likt visas zilās vienā čupā un blakus baltās.
    2. Draiveri. Neder man draiveri kas paredzēti led lentēm un citiem mājas izgaismošanas projektiem. Jo šie 3W ledi ir 700ma, tātad man vajag konkrēti šādas amperāžas draiverus, jo uz katru kanālu būs pa 10 lediem virknē un katrs draiveris dimmēs vienu konkrētu kanālu. Nevienā virkne nebūs nevienas pretestības kā tas ir lentās un citos izstrādājumos.

  3. #53
    Senior Member
    Reģistrējās
    Apr 2007
    Atbildes
    2,019

    Default

    Quote Jurkins rakstīja View Post
    off. M_J, wire (I2C) bibliotēka to dara. Nebija līdz šim nācies I2C izmantot. Tikai tā pamēģināju, to HTU izmantošu, bet noteikti pats uzrakstīšu vienkāršu, minimālistisku I2C "draiveri". Jā, un tam wire "kājas" šķiet aug turpat, kur serial.print, šim arī ir funkcijas, kas ļauj stringus raidīt/uztvert. Nu ja, un HTU biblene izmanto float matemātiku.

    Papētīju to Arduino oriģinālo twi.c , kas sēž zem Wire biblenes. Nesaprotu, kāda vella pēc šie izmanto pārtraukuma vektoru, ja gan rakstīšanas gan lasīšanas funkcijā ir kāda "īpaša" rinda -
    Code:
     while(TWI_MRX == twi_state)
    {
        continue;
     }
    Sanāk, kamēr state machine ir stāvoklī TWI_MRX (Master recieve), un līdzīgi pie transmit, atmelis maļ tukšo ciklu, un neko citu šajā laikā tāpat padarīt nevar. Bet, ja defaultā I2C strādā ar 100kHz, tad pie atmeļa 16Mhz, tas ir nežēlīgais lērums tikšķu. Tad jau nav nekādas vajadzības pēc pārtraukuma, pietiek ciklā baudīt pārtraukuma karogu. Jeb es kaut ko ne tā saprotu?
    Jurkin, Arduino bibliotēka nekad nav rakstīta ar mērķi maksimālā veiktspēja, drīzāk - maksimāls ērtums (un arī par to reizēm var pastrīdēties). Reizēm tieši otrais punkts ir svarīgi, jo tas arī galu galā nodrošināja milzīgo popularitāti, jo pēkšņi katrs mākslEnieks varēja uzrakstīt 3 rindiņas un viņam mirgoja LED. Pirms tam taču arī to varēja izdarīt, vai ne? Bija taču Atmel Studio, bija taču 300 lappušu specenes, asemblers un reģistri nebija atcelti Nu, tā ir smalka līnija, nostaigāt pa vidu tā, kā tev pašam vajag. Gribi ātri un ērti - labi, ka ir tāda Arduino bibliotēka. Gribi pats, ar maksimālu kontroli un izpratni - raksti labāk nu no nulles vai meklē kāda cita līdzīgus centienus.

  4. #54
    Senior Member
    Reģistrējās
    Mar 2011
    Atbildes
    1,052

    Default

    Bieži vien gatavās bibliotēkas tiek rakstītas universālam pielietojumam. Līdz ar to tiek iekļautas lietas pilnīgi visiem dzīves gadījumiem, kas itin bieži ir tikai traucējošas. Diezgan bieži gatavajās bibliotekās var sastapties ar dažādiem brīnumiem. while ir viens no tādiem, kas laika kritiskos brīžos var radīt problēmas. Es pēdējā laikā cenšos atturēties no gatavajiem bibliotēku risinājumiem, jo dažreiz pietiek tik ar dažām rindiņām konkrētai vajadzībai, tā vietā, lai liktu visu bibliotēku.
    Last edited by sasasa; 17-05-2017 at 10:41.
    Jēga mēdz būt arī bezjēdzīga.

  5. #55
    Senior Member
    Reģistrējās
    Nov 2009
    Atrodos
    Jēkabpils
    Atbildes
    2,013

    Default

    Taisnība. Es arī pamēģināju ar gatavām bibliotēkām, kā tas htu strādā. Es šo noteikti lietošu, bet tikpat noteikti bez Wire.h.

  6. #56
    Moderator JDat's Avatar
    Reģistrējās
    Jan 2009
    Atrodos
    Rīga
    Atbildes
    4,324

    Default

    kamēr arduino ir hobijs, tikmēr var taisīt savas bibliotēkas. Kad hispterim vajag ātri iedot risinājumu (slepenais prototips histerstartup idejai), tad, atvainojiet, par bibliotēku rakstīšanu neviens nemaksā.

  7. #57
    Senior Member
    Reģistrējās
    Nov 2009
    Atrodos
    Jēkabpils
    Atbildes
    2,013

    Default

    Pilnīgi piekrītu, man tas ir tīri hobijs, un interesē kā viss notiek. Vienu vakaru pavadīju, lai iebrauktu I2C un uzrakstītu (saprastu) savu realizāciju.

  8. #58
    Moderator JDat's Avatar
    Reģistrējās
    Jan 2009
    Atrodos
    Rīga
    Atbildes
    4,324

    Default

    Vienkāršs variants kā iebraukt I2, tas ir paņemt MCP3221 ADC mikreni un palasīt saturu. Pēc tam ar diviem arduino pasūtīt datus abos virzienos no gatavajiem paraugiem. Vēl var izmantot MC23017 mikreni priekš mācībām.

    Ja ir idejas kā uzrakstīt Wire un TWI labāk, bet nesalaužot savietojamību, tad tas jau ir PRO level un rezultātu var iesniegt arduinistiem caur github. Labas lietas tāpēc arī ir labas lietas, ja tās labi uzraksta un iedod pārējiem.

  9. #59
    Senior Member
    Reģistrējās
    Mar 2011
    Atbildes
    1,052

    Default

    Nesapratu priekš kā tur adc vajadzīgs?
    Iesākumam pilnīgi pietiks kautvai ar šo https://www.google.lv/url?sa=t&sourc...aIUahNoz4upWoA
    Jēga mēdz būt arī bezjēdzīga.

  10. #60
    Moderator JDat's Avatar
    Reģistrējās
    Jan 2009
    Atrodos
    Rīga
    Atbildes
    4,324

    Default

    lai nolasītu konkrēto adc, vajag tikai nolasīt 16 bit skaitli. elementārs uzdevums. bet tā, interesants dokuments.

+ Atbildēt

Lietotāja atļaujas

  • Jūs nedrīkstat uzsākt jaunas tēmas
  • Jūs nedrīkstat iesūtīt atbildes
  • Jūs nedrīkstat pievienot pievienotos failus
  • Jūs nedrīkstat labot savas atbildes