Bascom dynamický "alias"

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
bdn
Příspěvky: 436
Registrován: 16 led 2020, 01:00

#46 Příspěvek od bdn »

@samec
Obávám se, že kód nebude fungovat. Jakou úlohu tam hraje řádek č.3 ?

Kód: Vybrat vše

p123 = !p123 ? 1 : p123 << 1; 
Po rezepsání ?:

Kód: Vybrat vše

if(!p123)
{
	p123 = 1;
}
else
{
	p123 = p123<<1;
}
Nikde nevidím, na základě čeho dojde k zápisu na specifický I/O pin.

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#47 Příspěvek od samec »

Skús, uvidíš.

OPRAVA:
Máš pravdu, je tam skrytá chyba.

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#48 Příspěvek od Mahoney »

Osobně nejsem příznivcem hackingu :D

Díval jsem se na to, nějak ten ternální operátor moc nechápu, to samé předtím ten pointer na pointer, nebo co to tam máš v té deklaraci... A to jsem se tu tazateli snažil vysvětlit, že C by bylo přínosem :D

Uživatelský avatar
bdn
Příspěvky: 436
Registrován: 16 led 2020, 01:00

#49 Příspěvek od bdn »

@samec
Ten kód s shiftováním hodnoty uložené jako pole uint8[4] a přetypováno na uint32_t má několik nevýhod.
1/ I/O porty je možné nastavovat pouze ve fixním pořadí, dáno vlastností shift-left, shift-right
2/ shiftuje se číslo 0x01, t.j. při nahození např. p[0].bit1 automaticky spadne předchozí bit p[0].bit0, což může být nechtěný vedlejší efekt.
3/ zapisujeme 20 I/O a poslední nevyužité 4 I/O bity z bajtu např. PORTC=p[2] budou vždy přepisovány kódem, což může být nechtěný vedlejší efekt.
4/ závislost na nastavení kompilátoru reprezentace 4 bytového čísla, little-endian, big-endian
Dle mého názoru switch-case, je mnohem přehlednější a pro odladění lepší...

Uživatelský avatar
scorpions-cz
Příspěvky: 1760
Registrován: 19 bře 2011, 01:00
Bydliště: Jižní Čechy Dačicko

#50 Příspěvek od scorpions-cz »

Přes CASE jsem to (sice v bascomu :lol: ) už vyřešil. Jak psal TERMIT256 navrhnu si desku co nejjednodušším způsobem a pořadí pinů nastavím v programu. Další věc, ať bude interval mezi aktivací jednotlivých výstupů jakýkoli ( v rozmezí 0,1 - 9,9 sec) tak impulz na daném pinu musí být jen 100mS.

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#51 Příspěvek od Mahoney »

Jak to vlastně máš vymyšlený se změnou intervalů apod. na místě? Nebo není možná? Pro každý ohňostroj to napíšeš a zkompiluješ doma, a sekvence je tím prostě daná?

Uživatelský avatar
scorpions-cz
Příspěvky: 1760
Registrován: 19 bře 2011, 01:00
Bydliště: Jižní Čechy Dačicko

#52 Příspěvek od scorpions-cz »

Ne ne, Intervaly budou nastavitelný na zařízení. Budou tam dva palcový BCD přepínače. U tohoto jednoduchých seqenceru se nastaví jeden interval a v tom intervalu to odpaluje. Jak jsem psal, je to nahrazení pyrotechnických( odhořívacích) zpožďovačů. Programovatelný zařízení mám v plánu později. Letos jsem si pořídil čínský programovatelný zařízení, ale má mouchy :lol: . Nejde třeba nastavit jeden čas pro více odpalů a pod.
Částečne o tom píšu tady.
http://www.ebastlirna.cz/modules.php?na ... 00&start=0

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#53 Příspěvek od Mahoney »

Aha, jo, to už jsem stihl zapomenout :D To víš, má fantazie pracuje a vidím před sebou zařízení, co má třeba znakový displej, rotační enkodér a intervaly si kroutím přímo na pultu do eeprom :D Například… Ale tohle by šlo v omezené míře klidně i na tom malým pultu co chystáš, šlo by nacpat 20 hodnot do eeprom (klidně každou jinou) a v těch case je načítat a čekat podle toho… A šlo by podle té hodnoty klidně podmínkou zohlednit i ten BCD spínač…dá se s tím vyhrát různě, je to fakt zajímavá jednoduchá úloha (tedy softwarově, u této úlohy je víc o hw než o sw)

Uživatelský avatar
scorpions-cz
Příspěvky: 1760
Registrován: 19 bře 2011, 01:00
Bydliště: Jižní Čechy Dačicko

#54 Příspěvek od scorpions-cz »

Jak jsem psal. Programovatelnej pultík bude další štace :lol: . Šel bych ale podobnou cestou jako číňan. to znamená že by byly odpalovací moduly 1 - 100 s nastavitelnou adresou taky BCD spínačem a jeden řídící pultík, kde bude program.
Jinak u tohoto seqenceru počítám, s variantou (když nastavím na BCD 00) STEP BY STEP. To znamená, že při vstupním impulsu odpálí pozice 1, při opětovném pulzu pozice 2 atd.

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#55 Příspěvek od Mahoney »

Tyjo, tak to budou hodně drahý a zbytečně velký moduly, když každej bude mít BCD spínač... to už by bylo levnější i prostorově úspornější nacpat do každýho malý MCU a propojit je nějakou sériovou sběrnicí, a rázem je z toho úplně jinej problém k řešení, třeba spolehlivost komunikace :D Sto lidí sto chutí, samozřejmě respektuju tvou představu i svobodu tvořit po svém, a kdo si hraje, nezlobí… což taky získává ve spojení s odpalováním úplně jiný nádech :D

Uživatelský avatar
scorpions-cz
Příspěvky: 1760
Registrován: 19 bře 2011, 01:00
Bydliště: Jižní Čechy Dačicko

#56 Příspěvek od scorpions-cz »

Blbě jsi mě pochopil. Pokud se bavíme o tom budoucím programovatelným systému, tak BCD přepínač tam bude pro nastavení adresy modulu. Jasně bude to spojeno asi RS485. Jeden řídící programovatelnej modul a až 100 různejch odpalovacích modulů. Jasně že v každým bude MCU. Pokud se v systému použijí dva moduly se stejnou adresou, pojedou synchronně.

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#57 Příspěvek od samec »

Aj tak si myslím, že zrobíš nejaké nešťastie. Je to len otázka času. Toľko vecí, ktoré treba zohľadniť v rámci bezpečnosti, to sám nevymyslíš. A nie v každom obore sa dá učiť na vlastných chybách. V niektorom urobíš chybu len raz.

Uživatelský avatar
scorpions-cz
Příspěvky: 1760
Registrován: 19 bře 2011, 01:00
Bydliště: Jižní Čechy Dačicko

#58 Příspěvek od scorpions-cz »

A v čem si myslíš, že bude ten můj seqencer míň bezpečnej, než ta čínská krabička, co jsem dával fotku na druhý straně tohoto vlákna?

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#59 Příspěvek od samec »

Prečo to porovnávaš s čínskou krabičkou? To akoby som ťahal v dome elektrinu zelenožltou dvojlinkou s výhovorkou, že veď je to lepšie ako v osade, kde to majú pozinkovaným drôtom z plotu.

Uživatelský avatar
scorpions-cz
Příspěvky: 1760
Registrován: 19 bře 2011, 01:00
Bydliště: Jižní Čechy Dačicko

#60 Příspěvek od scorpions-cz »

Protože ta čínská krabička se běžně na ohňostroje používá, v ČR se prodává a dokonce prodej (protože to není pyrotechnika) není omezen věkem, ani způsobilostí.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“