Hlavní přehled   |   Info a nápověda Přihlásit   |   Registrovat
 
 
Příspěvek umístěný v tematickém vlákně:    Generátor Figuera - Koncepční detaily, odborná diskuze   (str. 65)
 
Antena   
31.12.2024 20:56

298 137 
Tak ta expanze jader to je celkem čára přes rozpočet...
Kdyby jsem to po firmě chtěl udělat tak mě asi pošlou do pr...čic. Nechtěli dělat kruhové jádra, tak nevím jestli se jim budou chtít dělat expanze...
Nicméně také něco pustím.
Dělám na generování sinusovky v primárech pomocí dvojice výkonových tranzistorů, abych mohl odměřit velikost magnetického pole v Teslech.
Na pilu o frekvenci 10kHz se moduluje sinusový průběh. Kde se křivky potkají, jsou to body ve kterých se spíná příslušný tranzistor.
V pythonu jsem vytvořil rovnice jednotlivých průběhů, pilu beru jako soustavu přímek a počítám kde se protnou se sinusovkou. Python spočítá průsečíky a zrovna vygenerguje 99 procent kodu v assembleru pro arduino. Moc programovat neumím tak jsem to v pythonu udělal tímto způsobem. Někdo tu zveřejňoval daleko lepší program na výpočet konstant, ale pouze na jednu sinusovku. Já musím generovat 2 sinusovky posunuté o 180°...
Pokud v programu pro arduinu ve funkci void loop() je ještě něco jiného (např serial.print) než volání programu v assebleru tak arduino provede assemblerovský kod, dá si pauzu na provedení instrukcí serial. print...tj. nespíná PWeMkem, dává si pauzu. Když jsem zrušil serial.printy vykonávalo to v podstatě spínání, zkoušel jsem to pouze osciloskopem. Nemám paměťový osciloskop, takže nevím co to dělá když se dokončí program v assembleru a opět začne. (program běží v nekonečné smyčce) Spíše to beru tak, že arduino ide je nevhodný program pro naprogramování této záležitosti. Je to lepší napsat v Atmel Studiu a pak program nějak nahrát do procesoru. Nevím jak se programuje v Atmel Studiu procesor Mega2560. V Arduiu IDE je to jasné...pomocí USB...
Asi to budu muset udělat pomocí procesoru ATmega16, prodávají programátor
https://www.gme.cz/v/1508271/vyvojovy-kit-avr-51
procesor zde https://www.gme.cz/v/1486732/microchipatmel-atmega16a-pu jede s krystalem na 16MHz má výkon 16 MIPS tj. 16 milionu instrukcí za sekundu. Rychlejší je ATTiny2313 https://www.gme.cz/v/1484008/microchipatmel-attiny2313-20pu ten jede na 20MHz má výkon 20 MIPS tj. 20 milionu instrukcí za sekundu, ale nemám na něho programátor...Kdysi jsem kupoval knihy Davida Matouška a dělal různé programátory a programoval assembler. Programátor na 2313 se mě někde ztratil, ale na ATmega16 mám, sice ještě se seriovým portem, ale mám.
Takže procesor ATmega16 to jistí, nebudou žádné nesmyslné pauzy po vykonání jedné periody sinusu...

Proč to píši v assembleru je relativní rychlost a přesnost provedení instrukcí a tím pádem přesnost spínání, instrukce digitalwrite je pomalá, a celkově by se člověk nedostal na 10kHz ale třeba na 2kHz, takže proto assembler.

V Arduinu IDE není uplně jednoduché programovat v assembleru, není to zase až tak obvyklé. Není moc informací, nicméně jsem překopal jeden prográmek na spínání ledek, takže jsem použil kostru tohoto programu ... zbyli tam nějaké zbytky původního programu...
Šťastný nový rok...
 


(Dostupné jen pro přihlášené uživatele fóra)
 


(Dostupné jen pro přihlášené uživatele fóra)
 


(Dostupné jen pro přihlášené uživatele fóra)
Zvláštní ocenění za úsilí nebo přínosPozitivní ohlasyOznačit příspěvek
  Přejít na příspěvek do vlákna      

 
 
Omforum.cz   |   Nápověda   |   Pravidla fóra   |   Podpořte chod fóra   |   Vytvořil: 2015-2025 Adam Benda
 
 
CC BY-NC-ND 3.0 CZ
Licence Creative Commons
Toto dílo podléhá licenci Creative Commons Uveďte původ-Neužívejte komerčně-Nezpracovávejte 3.0 Česká republika License