Fórum témák
» Több friss téma |
Idézet: Feszültségkövető erősítő „A leválasztó OPA, sajnos, nem tudom, hogy mit jelent.”
Ha nem maradnál meg tisztán digitális területen, hanem analóg elektronikába is belekóstolnál, akkor azokra az alapokra is szükséged lesz. Analóg elektronikáról szerencsére magyar nyelvű doksik is vannak, de ami eszközöket érdemes felhasználni, azoknak az adatlapja már ugyan úgy angol. Ha az elméleti alapokat túlélted, és eljutottál az alkatrész választás problémájához, majd nézz el Microchip-ék oldalára is: Bővebben: Link
Sziasztok! Tudna valaki segíteni léptetőmotor lineáris gyorsítás-fékezés programozásban? Nem vagyok profi, de talán már az elv is nagy segítség lenne. Jelenleg 13 lépcsőben megy a gyorsítás és a fékezés, de szerintem lehetne ezt jobban is. Asm-ben programozok. Köszönöm!
Nem tudom, hogy pontosan most nálad miképpen van megcsinálva, de a vezérlőknek általában úgy tudom 5us magas szint kell a lépéshez. A forgási sebességet a magas szintek közötti alacsony szintek hosszával tudod szabályozni. Persze ennek is kell legalább 5us hosszúnak lennie, de egy ilyen rövid szünet már nagyon gyors lépéseket jelentene, le sem tudja követni a motor. Szóval nem kell mást tenned csak fékezésnél finoman kezded hosszítani az alacsony szintek hosszát.
Igaz, hogy ez DC motorra van, de talán az elméletet meg lehet belőle érteni, talán léptetőmotorra még egyszerűbb is, ráadásul ASM a példaprogram. Bővebben: Link
Közben sikerült összehoznom egy majdnem jó programot, még finomítanom kell rajt.
16 bites processzor esetén C ben hogyan lehet egy 16 bites regiszterbe úgy beleírni egy 8 bites értéket, hogy az byte írással történjen (MOV.B xxxxx )?
Azt meg tudom csinálni hogy Word írással a korrekt értéket írom bele, először az alsó, majd a felső byte -ot, de nekem az nem jó megoldás. Az kellene hogy ha pl. az alsó byte -ot írom, akkor a felső byte egyáltalán ne íródjon.
Sajnos a mintaprogramot már többször eltüntette a fórum motor....
A hozzászólás módosítva: Márc 28, 2018
Amire gondoltál, az inkább változó lehet. A regiszter asm-ben hozzáférhető. C-ben azt egy absztrakt felület rejti el előled, és még ha valami spec flaggel keresztül is lehet azon nyúlni valamelyik fordító esetében, az akkor is nagyon rossz ötlet.
Köszönöm a segítséget!
Azt szeretném még kérdezni, ha tudja valaki, hogy MPLAB X-ben hogyan tudok egy általam definiált változót megfigyelni a program futása közben. A Watch ablakot már megtaláltam, be is állítottam a változót, de nem mutat semmilyen értéket.
Sziasztok.
Flowcode-ban programozok, szükségem lenne egy változó értékére megszakításban. Egy változó értékét, hogyan tudok beolvasni C kóddal? Ezt próbáltam, de nem jó, hibával leáll a fordító: FCV_hangero_temp=hangero Köszönöm!
Szia!
Nem ismerem a környezetedet, de C-ben minden utasítást ;-vel kell lezárni... !
Köszi, sajnos hibát dob.
Amúgy jó az utasítás? FCV_hangerotemp=hangero;
C-ben írhatsz ilyet, ha vannak ilyen változóid !
Mi a hiba ( nyomj egy PrintScreen-t ) ?! A hozzászólás módosítva: Márc 30, 2018
Közben láttam, hogy a Hangerotemp változó nagybetűvel lett írva. Javítottam kisbetűre, de úgy is hibát dob.
A hozzászólás módosítva: Márc 30, 2018
Köszi, így már hiba nélkül fordul.
Átállítottam mindkét változó byte típusú. Még egy kérdésem lenne C kódal kapcsolatosan. FCV_OW_CRC=CRCTABLE[HANGERO]; ez is hibára fut. Azt szeretném, hogy a hangerő változó értékének megfelelő számot olvassa ki a táblázatból, és az legyen az OW_CRC tartalma. Az ow_crc változót átállítottam INT típusú változóra. A táblázat 100 elemet tartalmaz, melyek 0 és 4100 közötti értéken vannak beírva.
Hogyan definiáltad a tábládat, mi a hibaüzenet ( ne kelljen már mindent harapófogóval kihúzni ! ) ?!
szerk.: A HANGERO definiálása is jó lenne ! A hozzászólás módosítva: Márc 30, 2018
Jól van naaa...
A hozzászólás módosítva: Márc 30, 2018
A tábla definiálása C-ben:
rom int CRCTABLE[100]={ ide jönnek az értékek vesszővel elválasztva ! }; szerk.: A definiálások nekem nem látszanak, de a HANGERO legyen char, az FCV_OW_CRC pedig int ( szerintem jól jársz előjel nélkülivel ! ) ! A hozzászólás módosítva: Márc 30, 2018
Most csatoltam a hibaüzenetet.
Nem a táblázat hibát ír ki, hanem változó hibát, ha jól látom.
Igen, azt írja, hogy nem tudja mi az a HANGERO ( nincs ilyen azonosító !) !
A hangero változó használva van több helyen is, definiálva is van.
A C kód miatt nem tudom mikor kell nagybetűvel írni, és (vagy) kisbetűvel. A hangero értéke 0-99 közötti szám, byte típusú. A hozzászólás módosítva: Márc 30, 2018
Egy változónak csak egy neve lehet, vagy nagybetűs vagy kicsi vagy kevert, de a C PONTOSAN figyel rá !!
Átírtam az összes változó nevét nagybetűkre, (HANGERO, HANGEROTEMP), STB...
Ugyanaz a hiba most is, nem ismeri a hangero változót
Akkor valahogy közölni kell vele, hogy van !
Nem ismerem az általad használt nyelvet, de a HANGERO milyen típusú: globális vagy lokális ?!
Gondolom globális. Nincs benne ilyen állítási lehetőség.
Létrehozom a változót, aztán bárhol használhatom.
Próbáld meg a C-s részben egy ilyet beírni ( persze a HANGERO-nek megfelelően !) :
extern char HANGERO; |
Bejelentkezés
Hirdetés |