|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.09 Kraj: Dragomer
|
Objavljeno: Sre Mar 30, 2016 8:28 am Naslov sporočila: Kako v Arduinu definiram konstanto v hex obliki? |
|
|
Včasih mi &H7E več pomeni kot ekvivalent 127
To je recimo I2C naslov IO expanderja PCF8574A za pisanje
Kako napišem pravilno
byte PCF8574Awriteadddress = ..7E ? 127 mi tukaj 'ne paše'.
_________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
Minimal Član
Pridružen-a: Pet 31 Avg 2012 10:03 Prispevkov: 66 Aktiv.: 0.47 Kraj: Obala
|
Objavljeno: Sre Mar 30, 2016 9:25 am Naslov sporočila: |
|
|
0x7E bi moralo delovati.
LP
_________________ Vsak začetek najde svojo pot |
|
Nazaj na vrh |
|
|
Branez Moderator
Pridružen-a: Pon 14 Apr 2003 7:21 Prispevkov: 7768 Aktiv.: 34.98 Kraj: Koprivnica HR
|
Objavljeno: Sre Mar 30, 2016 10:05 am Naslov sporočila: |
|
|
Koda: |
#include <LCD.h>
#include <LiquidCrystal_I2C.h> // F Malpartida's NewLiquidCrystal library
.
.
.
#define I2C_ADDR 0x70 >> 1 // I2C address PCF8574A |
Ali kakšen je pač tvoj naslov. To jaz uporabljam.
_________________ The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!
Albert Einstein |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.09 Kraj: Dragomer
|
Objavljeno: Sre Mar 30, 2016 10:44 am Naslov sporočila: |
|
|
Ja, Hvala,
0x7E je prebavil.
Zaletavam se v formalne razlike..
Pri meni bo PCF8574A (z address pini na High) krmilil releje. Pravzaprav jih že krmili, a sedaj v Bscomu. Morda bom samo procesor zamenjal in na obstoječi TIV, ki ga sedaj upravlja Atmel mega644p vezal enega od arduinov. Sem sicer površno gledal, toda, izgleda, da arduino uporablja ali atmel 328 ali mega 2560 in nič vmes.
Morda 328 ne bo dovolj velik, no, ja, bo pa 2560 imel nekaj prostih bajtov.
Razmišljam kako praktično to narediti. mali arduino ima iglice, ki bi jih kar porinil v neko prilagoditveno tiv vezje, ki bi ga nabodel na mega644p podnožje, pri mega2560 si bo treba izmisliti kaj več.
Sedaj program v bascomu na 644p potrebuje cca 40000 bajtov prograamskega spomina. Res da nisem pazil na to, da bi porabil čim manj bajtov, a se mi zdi, da bo arduino z vsemi mogočimi bibliotekami, ki jih moram vključiti v program porabil še več. Tako, da nimam velikega upanja, da bi stvar spravil na 328.
_________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
Branez Moderator
Pridružen-a: Pon 14 Apr 2003 7:21 Prispevkov: 7768 Aktiv.: 34.98 Kraj: Koprivnica HR
|
Objavljeno: Sre Mar 30, 2016 11:03 am Naslov sporočila: |
|
|
Klik in še en klik tam, pa je gotovo!
_________________ The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!
Albert Einstein |
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.11
|
Objavljeno: Sre Mar 30, 2016 12:24 pm Naslov sporočila: |
|
|
Zelo kmalu ti bo prišla prav še binarna oblika števil.
Koda: |
#define B7je1 B10000000 // Bit (0 ... 7) je (0 ... 1)
#define B6je1 B01000000
#define B5je1 B00100000
#define B4je1 B00010000
#define B3je1 B00001000
#define B2je1 B00000100
#define B1je1 B00000010
#define B0je1 B00000001
#define B7je0 B01111111
#define B6je0 B10111111
#define B5je0 B11011111
#define B4je0 B11101111
#define B3je0 B11110111
#define B2je0 B11111011
#define B1je0 B11111101
#define B0je0 B11111110 |
Jaz to uporabljam za vklop/izklop posameznega bita v 8-bitni spremenljivki in za preverjanje stanja posameznega bita (beri: Naveličal sem se stalnega preračunavanja med bin , dec in hex).
Potem to izgleda takole:
Koda: |
spremenljivka = spremenljivka | B3je1; // OR Vklopi bit 3
spremenljivka = spremenljivka & B5je0; // AND Izklopi bit 5
spremenljivka = spremenljivka ^ B7je1; // XOR: Spremeni stanje bita 7
if((spremenljivka & B6je1) == B6je1) // Če je B6 enak 1
...
while(spremenljivka & B2je1) // dokler je B2 enak 1
...
if((spremenljivka & B1je1) == 0) // Če je B1 enak 0
...
|
Takole pa pošlješ 4 x 8 bitov na serial - to - parallel - register
Koda: |
void PiseREL() // TO FUNKCIJO SE KLICE ZA PISANJE NA 32 RELEJSKIH IZHODOV (4 x 74HC595), MSB najprej
{
/*
#define pinRd A15 // Izhodi DATA
#define pinRp A13 // Izhodi Pisi
#define pinRc A11 // Izhodi CLK
pinMode(pinRp, OUTPUT); // Izhodi Pisi SERial2PARallel
pinMode(pinRc, OUTPUT); // Izhodi CLK
pinMode(pinRd, OUTPUT); // Izhodi DATA
*/
PiseRELz(bitiREL3);
PiseRELz(bitiREL2);
PiseRELz(bitiREL1);
PiseRELz(bitiREL0);
digitalWrite(pinRp, HIGH); // impulz na pin PIŠI prenese vse serijske bite na izhode
digitalWrite(pinRp, LOW); // pin PIŠI
}
//////////////////////////////////////////////////
void PiseRELz(char k) // (spremenljivka) ZANKA // CHAR JE UNSIGNED, shiftanje v desno 10000000 -> 01000000 spredaj dodaja ničle
{
j = B7je1; // B10000000 ; // MASKA, 1 se pomika v desno
for(i=0; i<8; i++)
{
if ((k & j) != 0 ) // spremenljivka AND maska
{
digitalWrite(pinRd, HIGH ); // pošlje bit
}
else
{
digitalWrite(pinRd, LOW ); // pošlje bit
}
digitalWrite(pinRc, HIGH); // impulz na CLK pin za izhodeR
digitalWrite(pinRc, LOW); // pin CLK
j = j >> 1; // ZACNE NA BITU 7
}
} |
_________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
rafaellsi Član
Pridružen-a: Ned 11 Sep 2011 18:54 Prispevkov: 477 Aktiv.: 3.12 Kraj: Radovljica
|
Objavljeno: Sre Mar 30, 2016 1:48 pm Naslov sporočila: |
|
|
vilko je napisal/a: |
Sedaj program v bascomu na 644p potrebuje cca 40000 bajtov prograamskega spomina. Res da nisem pazil na to, da bi porabil čim manj bajtov, a se mi zdi, da bo arduino z vsemi mogočimi bibliotekami, ki jih moram vključiti v program porabil še več. Tako, da nimam velikega upanja, da bi stvar spravil na 328. |
Za starjše verzije Arduino okolja (verzije 1.0.x) se je dalo dobiti (neuradno) podporo oz. Arduino bootloader za procesorje 644 in 1284.... Nekatrei krmilniki za 3D printerje so zgrajeni okoli teh procesorjev, 644 - sanguino in 1284 - Melzi ali mogoče Mighty1284 zato mislim da bi se moralo dobit "knjžnice" tudi za novejše verzije arduino okolja. Mogoče tule. Teh knjižnic nisem preizkušal, mi je pa lepo delovala podpora za 1284 (Melzi controler) v strejših različicah arduina ......
Nazadnje urejal/a rafaellsi Sre Mar 30, 2016 1:49 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Sre Mar 30, 2016 1:48 pm Naslov sporočila: |
|
|
vilko je napisal/a: |
.....izgleda, da arduino uporablja ali atmel 328 ali mega 2560 in nič vmes........ |
Vilko tole definitivno ne drži, v Arduino IDE okolju lahko pišeš programe od ATtiny-a naprej, samo definicije za posamezni MCU je potrebno v IDE vnesti.
Za mego644(1284) imaš zadetkov na Netu malo morje, tako na Arduino.cc strani, kot drugje, samo eden med množico prav tako tudi za ostale MCUje.
Z Googlom išči enostavno npr.: "ATmega644 Arduino" ali pa "ATtiny Arduino"......
rafaellsi, tudi v zadnjih verzijah Arduino IDE zadeve delujejo!
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.09 Kraj: Dragomer
|
Objavljeno: Sre Mar 30, 2016 5:52 pm Naslov sporočila: |
|
|
Kar sram me je, moram priznati popolno nevednost na tem področju in hvala za napotke.
Sedaj me čaka branje dokumentacije in potem veliko vprašanj, s katerimi se vrnem k vam.
Če vas prav razumem, bom lahko z Arduino okoljem programiral vsebino 644p procesorja in ga celo programiral v samem vezju preko Miso Mosi Clk Rst pinov, se pravi ne bo potrebno nič spreminjati na hadrware-u, le program moram narediti v pravem ide okolju in ga pretočiti v že delujoče okolje. Ja, to je olajšanje.
Igo hvala za binarno postavljanje bitov poimensko, bo prišlo prav.
A, ja, še to: Ali je kdo od vas to pot že prehodil in jo pozna, ali jo poznate samo 's prstom po zemljevidu', se pravi veste, da obstoja, po tej poti pa še niste hodili ?
Saj vem, da bi sedaj rad še zlato uro, ampak, če je kdo na tej poti že odmikal kamne, zakaj bi se ob njih spotikal jaz.
Hvala vsem!
_________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
Objavljeno: Sre Mar 30, 2016 8:26 pm Naslov sporočila: |
|
|
vilko je napisal/a: |
Kar sram me je,............ |
Hej, možakar, tudi slučajno naj te ne bo sram!
Večina v tvojih letih ve, kakšno je spopadanje z novimi stvarmi, pri čemer ni problem razumevanja temveč problem pomnenja!
Torej, brez filozofiranja, povedal si zakaj C (Arduino IDE) in mi je popolnoma jasno.
Torej, ne se ženirat in vprašaj, bodi prepričan, da bomo pomagali!
In brez neumnosti, kot v citiranem besedilu!
Kar nekaj nas je v tvojih letih
Drugače pa, Vilko, mislim, da bi bilo enostavneje, ne prevajat iz Bascoma, temveč, če že moraš, napisat vse skupaj jovo na novo. Knjižnjice imaš za vso periferijo, torej, kakšnega Arduinčka, napišeš program, prešaltaš hardware na to plato in probaš..., seveda ne gre v prvo, popraviš in zopet probaš.....
Algoritme za kompletno zadevo imaš, če ne drugače jih imaš v svoji glavi (tako kot je v naši navadi, slabi, roko na srce), daj jih na papir in začni znova, obstoječi sistem bo še vedno delal!
PS Oba tvoja zadnja posta sem združil v enega, upam, da ne bo hude krvi.
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
|
cimer Član
Pridružen-a: Sob 07 Okt 2006 0:07 Prispevkov: 120 Aktiv.: 0.56 Kraj: Ljubljana
|
Objavljeno: Sre Mar 30, 2016 11:44 pm Naslov sporočila: |
|
|
Vilko, v parih besedah bom predstavil moj način programiranja AX VHF / UHF postaje v Arduino okolju.
Kompleten program sem razvil na Arduino Nano plošči, nanjo sem priklopil Nokia LCD in Enkoder s tipko. Vse povezave sem naredil identične kot na originalnem tiskanem vezju. Tako sem oblikoval prikaz na LCD - ju, Preko monitorja na serijskem portu sem tudi pregledoval ali program pravilno pošilja podatke preko UARTa na oddajno - sprejemni modul. IDE sem nastavil tako, da programiram Arduino nano - AtMega328p.
Ko sem bil zadovoljen s programom, sem zamenjal ploščo in sicer postaja uporablja isti procesor, samo z notranjim oscilatorjem torej deluje na 8MHz. V nastavitvah sem poiskal arduino ploščo, ki ima enak procesor in enako hitrost ure. Program sem še enkrat prevedel z novo ploščo. Potem sem poiskal HEX datoteko in jo na procesor od postaje zapekel z navadnim ISP programatorjem. Procesor sem vstavil v postajo in postaja je oživela.
Meni se je tak pristop zdel zelo enostaven, saj sem večino testiranja lahko naredil tako, da sem program nalagal preko usb. Končno verzijo pa klasično preko programatorja direktno na procesor postaje.
Upam, da sem pomagal in da nisem vse skupaj napisal preveč komplicirano.
_________________ Lep pozdrav!
Marko S. |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.09 Kraj: Dragomer
|
Objavljeno: Čet Mar 31, 2016 3:57 pm Naslov sporočila: |
|
|
cimer je napisal/a: |
V nastavitvah sem poiskal arduino ploščo, ki ima enak procesor in enako hitrost ure. |
Hvala, cimer, Le sam ne najdem, kje v nastavitvah Arduinota na PC-u izberem procesor atmelmega644p in kje frekvenco 11059200Hz (ki jo uporabljam pri vseh mojih projektih zaradi povezljivosti)
Pod 'Orodja->Plošča sicer dobim seznam nekih neznanih mi plošč, (poznam samo Uno, Mini, Nano in Mega) a nikjer, kateri procesor ali celo frekvenco kristala.
Mi bo v veliko pomoč, če me vodiš.
Hvala!
_________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
cimer Član
Pridružen-a: Sob 07 Okt 2006 0:07 Prispevkov: 120 Aktiv.: 0.56 Kraj: Ljubljana
|
Objavljeno: Čet Mar 31, 2016 9:47 pm Naslov sporočila: |
|
|
Pozdrav Vilko,
pogledam za tvoj primer, daj mi kak dan....
_________________ Lep pozdrav!
Marko S. |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.09 Kraj: Dragomer
|
Objavljeno: Čet Mar 31, 2016 9:59 pm Naslov sporočila: |
|
|
Dobrodošel boš!
Hvala!
_________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
Jaka57 Moderator
Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5766 Aktiv.: 25.97 Kraj: Grosuplje
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|