Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
WinAVR / GCC alapszabályok:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"
2. Soha ne érjen véget a main() függvény
3. UART/USART hibák 99,9% a rossz órajel miatt van
4. Kerüld el a -O0 optimalizációs beállítást minden áron
5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás
6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et
Bővebben: AVR-libc FAQ
Lapozás: OK   836 / 840
(#) cua válasza alita hozzászólására (») Jan 13, 2024 /
 
Az A jelzesu modernebb, amugy interchangeable.
(#) alita válasza cua hozzászólására (») Jan 13, 2024 /
 
Köszönöm a választ.
(#) majkimester válasza alita hozzászólására (») Jan 13, 2024 / 1
 
Nem sok különbség van, az A végű újabb, kevesebbet fogyaszt.
Részletesen:
Bővebben: Link
(#) alita válasza majkimester hozzászólására (») Jan 13, 2024 /
 
Nagyon köszönöm,kielégítő válasz volt.
(#) moltam hozzászólása Feb 14, 2024 /
 
Helo.
Nézegettem egy projektet githubon és találtam egy ilyen sort:
  1. #define bit_check(var,pos) !!((var) & (1U<<(pos)))
Mivégre van a dupla negáció?
(#) vargham válasza moltam hozzászólására (») Feb 14, 2024 /
 
Azért van, hogy biztosan megtörténjen a logikai típussá konvertálás.
C++ esetén az egészet érdemes mellőzni, és makró helyett megírni a függvényt. Ami akár lehet inline.
(#) moltam válasza vargham hozzászólására (») Feb 14, 2024 /
 
Sima C ben van írva minden, ott van olyan hogy logikai típus? Úgytudtam van a 0 és van a többi érték, a nulla megfelel a hamisnak, minden más igaz.
(#) vargham válasza moltam hozzászólására (») Feb 15, 2024 /
 
Nem C++ kódban találtad?
(#) moltam válasza vargham hozzászólására (») Feb 15, 2024 /
 
(#) vargham válasza moltam hozzászólására (») Feb 15, 2024 /
 
Szerintem a szerző C++ kódból másolta a makró formátumát, és csak átírta.
(#) LiPeLi hozzászólása Feb 22, 2024 /
 
Sziasztok!

Van valakinek esetleg T56 vagy VP-998 programozó készüléke, vagy végülis bármilyen olyan típus ami képes ATMEGA16A-AU TQFP44 tokozású processzor tartalmát másolni másikra?

Az is jó ha valaki tud olyan vállalkozót aki foglalkozik vagy legalábbis rendelkezik hozzá eszközzel, nem tudom mennyibe kerülhet, de nem kérem ingyen.

Előre is köszi,
Peti
(#) asch válasza LiPeLi hozzászólására (») Feb 23, 2024 /
 
Jól értem, hogy a lényeg az eredeti program kiolvasása, és 1 példányos amit másolni kell?
Azt nem értem, hogy amit másolni kell, az nincsen felforrasztva egy NYÁK-ra? A NYÁK-on legtöbbször van programozó csatlakozó, szinte mindenki így tervez. Le kell forrasztani, betenni a foglalatba és kiolvasni?
Szerintem mindegy, hogy milyen programozója van valakinek, a TQFP44 socket adapter a lényeg, hogy az kell hozzá, hogy ha a pőre csipet forrasztás nélkül akarjuk rögzíteni. Az adaptert bármilyen AVR programozóra rá lehet csatlakoztatni. Szerintem ez kellene ide, vagy hasonló: https://www.microchip.com/en-us/development-tool/atstk600-sc06
Nekem nincs adapterem, meg nem is vállalnám, mert fakezű vagyok és másnak fontos egypéldányos dologgal nem szeretnék dolgozni. A lényeg, hogy ha rendelsz egy adaptert, akkor azzal bárki meg tudja csinálni aki AVR-ezik, és el meri vállalni.
A hozzászólás módosítva: Feb 23, 2024
(#) majkimester válasza asch hozzászólására (») Feb 23, 2024 / 1
 
Az egyik dolog a csatlakozás, a másik meg a kódvédelem. Ha nincs meg az eredeti program, akkor az valaki másnak a terméke, aki szinte 100%, hogy aktiválta a kódvédelmet és igy a tartalom nem olvasható ki.
(#) zolee1209 válasza majkimester hozzászólására (») Feb 23, 2024 /
 
Előző munkahelyemen forgalmaztunk/ használtunk kínai gyártmányú PID-es hőfokszabáylzót, amiben ATmega16, vagy 32 volt. Kíváncsiságból kiolvastam, és legnagyobb meglepetésemre nem volt bekapcsolva az olvasásvédelem.
(#) majkimester válasza zolee1209 hozzászólására (») Feb 23, 2024 /
 
A kivétel erősíti a szabályt
(#) LiPeLi válasza asch hozzászólására (») Feb 25, 2024 /
 
Nem az adapter a probléma, az eszköz amivel kiolvassuk. Ha át kell rakni adapterbe vagy át kell forrasztani azt megoldom, de van ICSP port.

Pont 50% az esélye annak, hogy olvasható vagy nem, de pont ezért akarnám kipróbálni, hogy leolvasható-e. Ha igen akkor beruházok egy komolyabb eszközbe mint ami most rendelkezésre áll nekem itthon.

Szóval Xgecu T56 és Wellon VP-998 írók biztosan kezelik ezt a típust, szóval ha valaki rendelkezik ilyennel kérem írjon

Köszönöm,
Peti
(#) majkimester válasza LiPeLi hozzászólására (») Feb 26, 2024 /
 
Nem irtad, hogy helyileg hol keresel. Nekem van programozóm, akár JTAG akár SPI csatlakozó van a NYÁK-on, akkor ki tudnám próbálni ha eljuttatod hozzám. Egy képet esetleg tegyél fel a csatlakozóról, lássuk miről van szó.
(#) LiPeLi válasza majkimester hozzászólására (») Feb 26, 2024 /
 
A hely annyira nem érdekes, ha nem határmentén vagy elviszem, de egyébként Budakalászon vagyok.

Csatoltam a képet.

IMG_3706.jpg
    
(#) majkimester válasza LiPeLi hozzászólására (») Feb 26, 2024 /
 
JTAG van rajta, de nem a szokásos 2x5 pines tüskesor:

6 - GND
5 - RESET
4 - TMS
3 - TDI ???
2 - TDO
1 - +5V ???

1-es és 3-os láb nem látszik hova megy, azt csak feltételezem.

AVR JTAG kiosztásra kellene alakítani, mert a programozón ez van.
A hozzászólás módosítva: Feb 26, 2024
(#) LiPeLi válasza majkimester hozzászólására (») Feb 26, 2024 /
 
Az 1 az TCK a többi stimmel.

ICSP kiosztás :
https://upload.wikimedia.org/wikipedia/commons/8/8f/Icsp-pinouts.png

A VCC az USB-ről megy 5 volt.

Kábelt meg tudom oldani, de a 6 pin adott. De úgy látom a JTAG-nek se kell több valójában, mert a VCC meg a GND megvan az USB-ről.

De ha kell az eszköznek a VCC és GND is megoldom, végül is be lehet azt forrasztani az USB csatlakozó tövéhez.
(#) majkimester válasza LiPeLi hozzászólására (») Feb 26, 2024 /
 
AZ ICSP amit linkeltél az az SPI módban programozás, ez itt JTAG lenne. +5V kell, mert a programozó ellenőrzi a cél áramkör tápjának meglétét.
(#) Tambi hozzászólása Márc 10, 2024 /
 
Kedves Fórumtársak!
Az AD9833 mellékelt kódját nagyjából érteném, ha működne, de erről szó sincs...
Azon sorokat, melyekben a "gen.(stb.)" szerepel az "AD9833 gen(9);" kivételével "megpirosozza" (kép mellékelve).

Mi hiányzik nekije???

  1. //========================
  2. //AD9833 Signal Generator
  3. //========================
  4. #include<AD9833.h>
  5. //----------------------------
  6. AD9833 gen(9);
  7. long f; int sw1, sw2;
  8. //========================================
  9. void setup()
  10. {
  11.   pinMode(3,INPUT); pinMode(4,INPUT);
  12.   gen.Begin();              
  13.   gen.EnableOutput(true);
  14. }
  15. //========================================
  16. void loop()
  17. {
  18.   f = map(analogRead(A6),0,1023,1000,5000);
  19.   sw1 = digitalRead(4); sw2 = digitalRead(3);
  20.  
  21.   if(sw1==LOW && sw2==LOW)    gen.ApplySignal(SINE_WAVE,REG0,f);
  22.   if(sw1==LOW && sw2==HIGH)   gen.ApplySignal(TRIANGLE_WAVE,REG0,f);
  23.   if(sw1==HIGH && sw2==LOW)   gen.ApplySignal(SQUARE_WAVE,REG0,f);
  24.   if(sw1==HIGH && sw2==HIGH)  gen.ApplySignal(HALF_SQUARE_WAVE,REG0,f);
  25. }


Köszönettel; Tambi.
(#) pipi válasza Tambi hozzászólására (») Márc 10, 2024 /
 
A lényeg ami nem látszik a képeden, a hibaüzenet, hogy mire-miért fúj a fordító ...
Lehet nem hozzávaló library-t használsz, hiába ugyanaz a neve, lehet tök más "belül"...
(#) Tambi válasza Tambi hozzászólására (») Márc 10, 2024 /
 
Bocsánat, az AD9833 még a boltban van, lehet, hogy azt keresi?
(#) Tambi válasza pipi hozzászólására (») Márc 10, 2024 /
 
Kedves Pipi!

Ezt mind írja, ami az én "-végtelen -> 0" angoltudásomat még Google fordítóval is messze meghaladja...

C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino: In function 'void setup()':
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:12:7: error: 'class AD9833' has no member named 'Begin'; did you mean 'begin'?
gen.Begin();
^~~~~
begin
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:13:7: error: 'class AD9833' has no member named 'EnableOutput'
gen.EnableOutput(true);
^~~~~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino: In function 'void loop()':
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:21:35: error: 'class AD9833' has no member named 'ApplySignal'
if(sw1==LOW && sw2==LOW) gen.ApplySignal(SINE_WAVE,REG0,f);
^~~~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:21:47: error: 'SINE_WAVE' was not declared in this scope
if(sw1==LOW && sw2==LOW) gen.ApplySignal(SINE_WAVE,REG0,f);
^~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:21:47: note: suggested alternative: 'SIZE_MAX'
if(sw1==LOW && sw2==LOW) gen.ApplySignal(SINE_WAVE,REG0,f);
^~~~~~~~~
SIZE_MAX
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:21:57: error: 'REG0' was not declared in this scope
if(sw1==LOW && sw2==LOW) gen.ApplySignal(SINE_WAVE,REG0,f);
^~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:21:57: note: suggested alternative: 'FE0'
if(sw1==LOW && sw2==LOW) gen.ApplySignal(SINE_WAVE,REG0,f);
^~~~
FE0
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:22:35: error: 'class AD9833' has no member named 'ApplySignal'
if(sw1==LOW && sw2==HIGH) gen.ApplySignal(TRIANGLE_WAVE,REG0,f);
^~~~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:22:47: error: 'TRIANGLE_WAVE' was not declared in this scope
if(sw1==LOW && sw2==HIGH) gen.ApplySignal(TRIANGLE_WAVE,REG0,f);
^~~~~~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:22:61: error: 'REG0' was not declared in this scope
if(sw1==LOW && sw2==HIGH) gen.ApplySignal(TRIANGLE_WAVE,REG0,f);
^~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:22:61: note: suggested alternative: 'FE0'
if(sw1==LOW && sw2==HIGH) gen.ApplySignal(TRIANGLE_WAVE,REG0,f);
^~~~
FE0
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:23:35: error: 'class AD9833' has no member named 'ApplySignal'
if(sw1==HIGH && sw2==LOW) gen.ApplySignal(SQUARE_WAVE,REG0,f);
^~~~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:23:47: error: 'SQUARE_WAVE' was not declared in this scope
if(sw1==HIGH && sw2==LOW) gen.ApplySignal(SQUARE_WAVE,REG0,f);
^~~~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:23:59: error: 'REG0' was not declared in this scope
if(sw1==HIGH && sw2==LOW) gen.ApplySignal(SQUARE_WAVE,REG0,f);
^~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:23:59: note: suggested alternative: 'FE0'
if(sw1==HIGH && sw2==LOW) gen.ApplySignal(SQUARE_WAVE,REG0,f);
^~~~
FE0
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:24:35: error: 'class AD9833' has no member named 'ApplySignal'
if(sw1==HIGH && sw2==HIGH) gen.ApplySignal(HALF_SQUARE_WAVE,REG0,f);
^~~~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:24:47: error: 'HALF_SQUARE_WAVE' was not declared in this scope
if(sw1==HIGH && sw2==HIGH) gen.ApplySignal(HALF_SQUARE_WAVE,REG0,f);
^~~~~~~~~~~~~~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:24:64: error: 'REG0' was not declared in this scope
if(sw1==HIGH && sw2==HIGH) gen.ApplySignal(HALF_SQUARE_WAVE,REG0,f);
^~~~
C:\Users\APA-PC-Otthon\Desktop\OneDrive - Csarnok.hu Kft\EN\AVR_2024\AD9833_ALAP\AD9833_ALAP.ino:24:64: note: suggested alternative: 'FE0'
if(sw1==HIGH && sw2==HIGH) gen.ApplySignal(HALF_SQUARE_WAVE,REG0,f);
^~~~
FE0
Multiple libraries were found for "AD9833.h"
Used: C:\Users\APA-PC-Otthon\Documents\Arduino\libraries\AD9833
Not used: C:\Users\APA-PC-Otthon\Documents\Arduino\libraries\AD9833-Library-Arduino-master
exit status 1

Compilation error: 'class AD9833' has no member named 'Begin'; did you mean 'begin'?
(#) pipi válasza Tambi hozzászólására (») Márc 10, 2024 /
 
99.99% hogy nem azt a AD9833 libraryt használod, amihez a forrásszöveg készült.
(#) Tambi válasza pipi hozzászólására (») Márc 10, 2024 /
 
Köszi Pipi!

Hogyan találhatnám meg az "eredeti" könyvtárat?
(#) Tambi válasza pipi hozzászólására (») Márc 10, 2024 /
 
Király vagy PIPI (így; csupa NAGYBETŰVEL)!!!

Két AD9833.h volt, egy 3k-s és egy 5k-s. A 3-ast letöröltem, az 5-öst meg beletettem az "AD9833_ALAP" mappába. Kiegészítettem Serial. print-el, és látom, hogy működik!!!

Reggelitől vacsoráig dolgoztam azon, amit te két perc alatt megfejtettél!

Gratulálok, és köszönöm szépen!

Derűs estét; Tambi. (nekem már van...)
(#) Tambi hozzászólása Márc 13, 2024 /
 
AD9833
Megérkezett a várva várt kit (ad9833 1), de nem tudom a frekvenciát változtatni. A három vezérlőjelhez (SDATA, FSCLK, FSY) a kitnek 4 lába, és három, egybemosódó felirata van. A jelalakot tudom változtatni, de a frekvenciaváltoztatáshoz nem fogadja el az analogRead-et. Ha "f" helyére beírok egy konkrét számot, akkor annak pontosan a felével rezeg.
  1. //Posted 17th February 2021 by Anas Kuzechie Projects
  2. //========================
  3. //AD9833 Signal Generator
  4. //========================
  5. #include<AD9833.h>
  6. //----------------------------
  7. AD9833 gen(9);
  8. float f; int sw1, sw2;
  9. //========================================
  10. void setup()
  11. {
  12.   pinMode(3,INPUT); pinMode(4,INPUT);
  13.   gen.Begin();              
  14.   gen.EnableOutput(true);
  15. }
  16. //========================================
  17. void loop()
  18. {
  19.   f = map(analogRead(A0),0,1023,1000,5000);
  20.   sw1 = digitalRead(4); sw2 = digitalRead(3);
  21.  
  22.   if(sw1==LOW && sw2==LOW)    gen.ApplySignal(SINE_WAVE,REG0,f);
  23.   if(sw1==LOW && sw2==HIGH)   gen.ApplySignal(TRIANGLE_WAVE,REG0,f);
  24.   if(sw1==HIGH && sw2==LOW)   gen.ApplySignal(SQUARE_WAVE,REG0,f);
  25.   if(sw1==HIGH && sw2==HIGH)  gen.ApplySignal(HALF_SQUARE_WAVE,REG0,f);
  26. }


vagy:

  1. #include <AD9833.h>     // Include the library
  2.  
  3. #define FNC_PIN 10       // Can be any digital IO pin
  4.  
  5. AD9833 gen(FNC_PIN);       // Defaults to 25MHz internal reference frequency
  6.  
  7. void setup() {
  8.     gen.Begin();              
  9.     gen.ApplySignal(TRIANGLE_WAVE,REG0,10000);  
  10.     gen.EnableOutput(true);  
  11. }
  12.  
  13. void loop() {
  14. }


Ez utóbbi program teljesen független a beírt 10000-es frekvenciától, bármit írok 1600Hz körül rezeg...

A 4 érintkezőből melyik az a 3, amelyiket használni kellene?

Köszönettel; Tambi.
A hozzászólás módosítva: Márc 13, 2024
(#) Hp41C válasza Tambi hozzászólására (») Márc 13, 2024 /
 
Következő: »»   836 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.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