Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   695 / 839
(#) Bakman válasza kapu48 hozzászólására (») Júl 12, 2021 /
 
Azt a képletet hol láttad? Ez van a megjegyzésbe írva:
  1. (0 * 8^1) = (0 * 8) = 0
(#) Skori válasza icserny hozzászólására (») Júl 12, 2021 /
 
Mondjuk így?
((1 * 82) + (0 * 81) + 1)
Ez sima pl. HTML kódban (de más szerkesztőkben) is könnyen megoldható lett volna.
(#) kapu48 válasza Bakman hozzászólására (») Júl 12, 2021 /
 
Teszteltem az arduinó megán, lefuttatva azt az eredményt kaptam:
  1. void setup() {
  2.   Serial.begin(115200);
  3.   Serial.print("ab = ");
  4.   int ab=((1 * 8^2) + (0 * 8^1) + 1);
  5.   Serial.println(ab);
  6.   int ac= (1 * 8^2) + 1;
  7.   Serial.print("ac = ");
  8.   Serial.println(ac);
  9.   int ad= 0 * 8^1;
  10.   Serial.print("ad = ");
  11.   Serial.println(ad);
  12. }
  13.  
  14. void loop() {
  15.   // put your main code here, to run repeatedly:
  16.  
  17. }


Eredmény:
ab = 12
ac = 11
ad = 1

egyébként: 8^1 = 9!
A hozzászólás módosítva: Júl 12, 2021
(#) Bakman válasza kapu48 hozzászólására (») Júl 12, 2021 /
 
icserni már leírta de akkor legyen újra: "A zárójeles kifejezés csupán megjegyzés, azaz nem C nyelven van!" A nyolc hatványai vannak jelezve, nem bit szintű XOR művelet. Sőt, a kettős per jel utáni rész, mint megjegyzés szerepel.
(#) kapu48 válasza Bakman hozzászólására (») Júl 12, 2021 /
 
Ezt értem!

Attól függetlenül én mégis különösnek tartom az arduinon kapott eredményt!
(#) Bakman válasza kapu48 hozzászólására (») Júl 12, 2021 /
 
Nem különös az, ha figyelembe veszed a műveletek végrehajtási sorrendjét.

0 * 8 ^ 1 --> (0 x 8) XOR 1 = 1

A zárójelen belül két művelet van. Ha biztosra akarsz menni, akkor vagy több zárójelet használsz mejelölve a prioritásokat vagy egyenként hajtod végre a műveleteket olyan sorrendben, ahogy neked tetszik.
(#) kapu48 válasza Bakman hozzászólására (») Júl 12, 2021 /
 
Igy már értem!
Nem tudom mért gondoltam, hogy a XOR-nak nagyobb a Precedencia-ja mint a szorzásnak!
(#) icserny válasza Skori hozzászólására (») Júl 12, 2021 /
 
Idézet:
„Ez sima pl. HTML kódban (de más szerkesztőkben) is könnyen megoldható lett volna.”

HTML-ben megoldható, de ez egy preformatted text blokkban volt...
(#) Kera_Will hozzászólása Júl 14, 2021 /
 
Hogy a legegyszerűbb egy 8bites de lehet inkább csak egy nibble méretű adatváltozó azonnali kiírása portokra?

Direktben címezhetem a portot DDRDx PORTx regiszterek használatával ... ez ok.
Más lehetőség nincs az arduino utasításai között?
Egyedi forciklusos bitenként és portonként körbe járása nélkül.
Ekkor lesz "hazard" mert nem 1szerre és azonnal jelenik meg minden porton az adat .
(persze DDRx PORTx esetén is van "hazard" amit a belső regiszterek kapukésleltetési idők eredményeznek ha nagyon kihegyezzük, de ez nem érdekes )
Amilyen hosszú 4 - 8 ciklus ütemig folyamatosan fog prellezni/hazárdozni a port állapota.
A hozzászólás módosítva: Júl 14, 2021
(#) dokidoki válasza Kera_Will hozzászólására (») Júl 14, 2021 /
 
Portbővítő ic, illetve shift regiszter OE láb vezérlés áthidalhatja a problémát.
(#) Kera_Will válasza dokidoki hozzászólására (») Júl 14, 2021 /
 
Igen ez jó lehet shiftreg vagy I/O IC-k.
De csak ha magát az ardu panelt szeretném használni akkor nem megoldható.
(#) icserny válasza Kera_Will hozzászólására (») Júl 14, 2021 /
 
Idézet:
„Direktben címezhetem a portot DDRDx PORTx regiszterek használatával ... ez ok.”
Ez a legegyszerűbb és leggyorsabb - szerintem. Bővebben: Link
(#) majkimester válasza Kera_Will hozzászólására (») Júl 15, 2021 / 2
 
8 bites esetén:

  1. PORTD = uj_ertek;


4 bites esetén, alsó 4 lábra: (a többi lábat változatlanul hagyja)

  1. PORTD = (PORTD & B11110000) | (uj_ertek & B00001111);


4 bites esetén, a felső 4 lábra:

  1. PORTD = (PORTD & B00001111) | (uj_ertek << 4);
(#) sdrlab válasza Kera_Will hozzászólására (») Júl 15, 2021 / 1
 
Mert ezt nem így kell ebben az esetben megoldani, hanem pl árnyékregiszter alkalmazásával, ahol ebbe a regiszterbe állítasz be minden bitet, egyéni kényelmed szerint(nem érdekes mennyi idő alatt és mivel), majd mikor kész van minden bit, a PORTx utasítással egyszerre másolod át ebből a segédregiszterből a portra a kívánt állapotot. Ekkor minden bit egyszerre jut érvényre...
(#) majkimester válasza sdrlab hozzászólására (») Júl 15, 2021 /
 
AVR-nél nem feltétlen kell árnyékregisztert használni, itt simán működik a PORTx olvasása, manipulálása, majd visszaírása megoldás.

Ez azért működik itt, mert a PORTx olvasása nem a port lábait olvassa, hanem azt adja amit előzőleg te beleírtál. Itt külön van a kimenetre a PORTx a bemenetek olvasására meg a PINx regiszter.

Más kontrollereknél (Pl. PIC16 sorozat), ahol nincs különválasztva a port írás és olvasás két regiszterre, ott az árnyékregiszter használata a jó megoldás, mert a port regiszter olvasása esetén egy terhelt kimeneti port esetén esetleg előfordulhat, hogy nem azt olvassa vissza, mint amit korábban kiírtál. (ott még a 1 lábra a bit manipulációs utasítások is read-modify-write-ként működnek, azokkal is lehet ilyen gond.)
(#) Kera_Will válasza majkimester hozzászólására (») Júl 15, 2021 /
 
Köszönöm a segítséget és megerősítést , hogy az ardu utasításai között ne keressem ezt a lehetőséget!
Az Arduino IDE utasítás eszközeivel akkor csak a bitenkénti kezelésre van lehetőség.
(egyszerre való kezelésre nem készítették fel , csak regiszterek direkt elérési útjára)
A DDRDx/PORTx nélkül nem oldható meg.
Akkor marad ez.
Ezeket a bit-set/reset AND/OR trükköket ismerem.
(#) sdrlab válasza majkimester hozzászólására (») Júl 15, 2021 /
 
Nem a szükségessége miatt ajánlottam, hanem az elve, átláthatósága miatt! Aki ilyen kérdést feltesz, annak ez nagyobb segítség, mint ha leírod példában (majdnem) ugyanezt...
(#) Jonni hozzászólása Júl 20, 2021 /
 
Sziasztok.

Régebben már kitárgyaltuk , hogy az arduino AMS1117 feszültség stabilizátora nem jó hatékonyságú. Ki lehet hagyni ams1117-et ha az arduino 5V(out) pin-re rákötünk egy DC-DC konvertert ? (a trimert fixen 5V-ra kell állítani )
(#) sdrlab válasza Jonni hozzászólására (») Júl 20, 2021 /
 
Mit értesz a nem jó hatékonyság alatt?? Egyszerű, áteresztő stab, mint mindegyik másik... Viszont LDO, kis eséssel dolgozik...
DC-DC konverter sokkal nagyobb zajt visz be, mint egy LDO! Ha ez belefér, akkor lehet létjogosultsága neki. Valamint akkor, ha magas bemenő feszültségről akarod járatni...és jelentősebb fogyasztás is kialakulhat mellette....
(#) Jonni válasza sdrlab hozzászólására (») Júl 20, 2021 /
 
A jó hatékonyság alatt azt értem hogy a konverter hatékonysága 90% feletti míg egy LDO rengeteget elfűt (és pont ezért akartam kihagyni, de ezzel a nagyobb zajjal most elbizonytalanodtam egy kicsit). 7,2V engedek be az LDO-nál, de így is melegszik egy kicsit és ez idegesít
(#) sdrlab válasza Jonni hozzászólására (») Júl 21, 2021 /
 
Mi az a kicsit? Nyilván az átfolyó áram függvénye a létrejött disszipáció. Ha ez durván nem emeli meg az LDO tok hőmérsékletét, akkor tetszik, nem tetszik, ez normális, nem kell vele foglalkozni! Ha 80C-nél magasabbra fűt fel, akkor már van helye a DC-DC konverternek, függetlenül a nagyobb zajtól!
Vagy csökkented a bemenő feszültséget, az LDO bőven elviseli ezt! Esetleg megnézed, mi az a "nagy" fogyasztó, ami generálja ezt a disszipációt, és azon csökkentesz, ha lehetséges...
(#) Jonni válasza sdrlab hozzászólására (») Júl 21, 2021 /
 
Kb 40-50 C fokra tippelek. Nagy fogyasztó nincs itt hacsaknem az lcd háttérvilágítása nagynak számít.
(#) sdrlab válasza Jonni hozzászólására (») Júl 21, 2021 /
 
Az semmi!
De a háttérvilágítást értelmetlen erről járatni! Az mehet a nyers bejövő tápról, megfelelő előtét ellenállással...
(#) Egri Frédi válasza Jonni hozzászólására (») Júl 21, 2021 /
 
40 - 50°C normál üzemi hőmérsékletnek számít egy elektromos berendezésnél ...
Az ne zavarjon, hogy a kezed/ujjad nem szeresse tapintani.
(#) Jonni válasza Egri Frédi hozzászólására (») Júl 21, 2021 /
 
A hatékonyság javítása a célom ....

próbálok kerülni minden melegedést
(#) SzilCsong hozzászólása Júl 22, 2021 /
 
Sziasztok

EEprom 0-dik bájtjába írok egy számot, majd vissza is olvasva okés, majd áramtalanítás után 94-et olvasok vissza.
Ez miért van?
(#) pipi válasza SzilCsong hozzászólására (») Júl 22, 2021 /
 
Írd tele az eepromot, és nézd meg utána a teljes területen mi van.
Milyen procival nyomulsz?
(#) Josi777 válasza SzilCsong hozzászólására (») Júl 22, 2021 /
 
Rossz az EEPROM vagy rossz a kód, amivel kezeled.
(#) SzilCsong válasza pipi hozzászólására (») Júl 23, 2021 /
 
ESP8266, pontosabba NodeMcu, 512byte eeprom van benne.
  1. value = EEPROM.read(0);
  2.   delay(200);
  3.   Serial.print(value);

menet közbe kiíratom a 0-dik byteot és az jó.
Akármit írok be menet közbe, visszaolvasva jó.
Tehát eltárolja

Ha újra indítom, mindig felülírja, most éppen 102.
Másik eszközzel ugyanez a helyzet.
(#) SzilCsong válasza Josi777 hozzászólására (») Júl 23, 2021 /
 
Kipróbáltam másik eszközzel, ugyanez a helyzet.
EEprom. write-val írom, EEprom.read-al olvasom.
Ezen felül kellhet még valami?
Amit nem tartok kizártnak, mert pl a
  1. EEPROM.begin(512)

parancs is kellett ESP8266-nál
Következő: »»   695 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem