|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14557 Aktiv.: 65.25 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Jul 25, 2023 5:46 pm Naslov sporočila: Google Bard |
|
|
Malo sem ga testiral:
asm koda za atmega328 in ad
Tukaj je primer asm kode za ATmega328 in AD konverter:
; Ta asm koda bo prebrala analogno vrednost iz pina A0 in jo izpisala na serijski port.
; Inicializiramo ADC.
ldi r16, 0b00000110 ; Nastavi ADMUX na pin A0 kot vhodni kanal.
sts ADMUX, r16
; Zaženemo pretvorbo.
ldi r16, 0b00000001 ; Nastavi ADCSRA na START bit.
sts ADCSRA, r16
; Počakamo, da se pretvorba konča.
lds r16, ADCSRA
sbrs r16, ADSC ; Če je ADSC bit še vedno 1, potem pretvorba še ni končana.
rjmp $-1
; Preberemo rezultat pretvorbe.
lds r16, ADCH ; ADCH vsebuje 8 najvišjih bitov rezultata.
lds r17, ADCL ; ADCL vsebuje 4 najnižje bitove rezultata.
; Izpišemo rezultat na serijski port.
mov r19, r16
swap r19
ori r19, 0b10000000 ; Dodamo bit za znak.
sout
mov r19, r17
sout
; Končajmo.
cli
ldi r16, 0b11111111 ; Nastavi vse pinne na izhod.
sts PORTB, r16
sei
sleep
Ta kodo lahko prenesete na ATmega328 s pomočjo programerja, kot je USBASP. Ko je koda prenesena, bo mikrokrmilnik začel brati analogno vrednost iz pina A0 in jo izpisovati na serijski port.
profilna slika
asm koda inicializacija pwm za atmega328
Tukaj je primer asm kode za ATmega328 in PWM:
; Ta asm koda bo ustvarila PWM signal z frekvenco 50 Hz in amplitudo 50% na pinu D5.
; Inicializiramo Timer 0 za PWM.
ldi r16, 0b00000101 ; Nastavi TCCR0A na način PWM s fazno zaviranjem (mode 5).
sts TCCR0A, r16
; Nastavi Timer 0 na frekvenco 50 Hz.
ldi r16, 0b00000001 ; Nastavi TCCR0B na prescaler 1.
sts TCCR0B, r16
; Nastavi vrednost OCR0A na 50% celotnega časa merilnika časa.
ldi r16, 128 ; Ta vrednost bo ustvarila PWM signal z amplitudo 50%.
sts OCR0A, r16
; Omogočimo PWM na pinu D5.
sbi DDRD, 5 ; Nastavi pin D5 na izhod.
sbi TCCR0A, COM0A1 ; Omogoči PWM na pinu D5.
; Začnemo PWM.
sbi TCCR0B, CS02 ; Omogoči Timer 0.
Ta kodo lahko prenesete na ATmega328 s pomočjo programerja, kot je USBASP. Ko je koda prenesena, bo mikrokrmilnik začel ustvarjati PWM signal z frekvenco 50 Hz in amplitudo 50% na pinu D5.
profilna slika
hvala
Prikaz drugih osnutkov
Ni za kaj! Upam, da ti bo pomagalo. _________________ lp
Silvo |
|
Nazaj na vrh |
|
|
SimonS Član
Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4592 Aktiv.: 20.58 Kraj: Kobarid
|
Objavljeno: Čet Jul 27, 2023 5:45 pm Naslov sporočila: |
|
|
Primerjava med bard in GPT
ukaz je bil: arduino koda esp32 za generiranje zvoka
BART
Koda: |
// Ta koda bo generirala zvočni signal z ESP32
// Uvozi potrebne knjižnice
#include <Arduino.h>
#include <toneAC.h>
// Izdefiniraj konstante za frekvenco in trajanje zvoka
const int frequency = 440; // Hz
const int duration = 1000; // ms
// Izdefiniraj funkcijo za generiranje zvoka
void playSound() {
// Izklopi zvočni signal
toneAC.noTone();
// Vklopi zvočni signal s frekvenco 440 Hz in trajanjem 1000 ms
toneAC.play(frequency, duration);
}
// Glavni program
void setup() {
// Inicializiraj ESP32
Serial.begin(115200);
toneAC.begin();
}
void loop() {
// Igraj zvok
playSound();
// Pričakuj 1 sekundo
delay(1000);
} |
chatGPT
Koda: |
const int outputPin = 25; // DAC pin na ESP32 za izlaz zvuka
void setup() {
pinMode(outputPin, OUTPUT);
}
void loop() {
// Generiranje osnovnog sinusnog signala frekvencije 1000 Hz
for (float i = 0; i < 360; i += 0.1) {
float value = sin(i * PI / 180.0) * 2048 + 2048; // Generiranje vrijednosti između 0 i 4095 (za 12-bitni DAC)
dacWrite(outputPin, value); // Ispiši vrijednost na DAC izlaz
delayMicroseconds(10); // Ograniči brzinu promjene signala radi generiranja zvuka
}
}
|
_________________ Lep dan
Simon |
|
Nazaj na vrh |
|
|
Dorijan Član
Pridružen-a: Ned 22 Jun 2008 10:48 Prispevkov: 2481 Aktiv.: 12.86 Kraj: južnoprimorska
|
Objavljeno: Čet Jul 27, 2023 5:52 pm Naslov sporočila: |
|
|
SimonS je napisal/a: |
Primerjava med bard in GPT... |
in je skompilalo / delalo ? _________________ Če nekaj deluje, razstavi in ugotovi zakaj. |
|
Nazaj na vrh |
|
|
SimonS Član
Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4592 Aktiv.: 20.58 Kraj: Kobarid
|
Objavljeno: Čet Jul 27, 2023 6:35 pm Naslov sporočila: |
|
|
Nisem, ampak na hiter pogled bi moralo delati oboje.
Je pa zanimovo, da ima vsak svoj pristop _________________ Lep dan
Simon |
|
Nazaj na vrh |
|
|
Dorijan Član
Pridružen-a: Ned 22 Jun 2008 10:48 Prispevkov: 2481 Aktiv.: 12.86 Kraj: južnoprimorska
|
Objavljeno: Čet Jul 27, 2023 11:40 pm Naslov sporočila: |
|
|
ko sem delal z chat GPT 3D modeliranje za OpenSCAD je dejansko popravil, ko sem mu rekel "can you write this using For loop" ali pa "can you optimize it in fewer lines" _________________ Če nekaj deluje, razstavi in ugotovi zakaj. |
|
Nazaj na vrh |
|
|
Proteus Član
Pridružen-a: Sre 15 Jun 2005 10:03 Prispevkov: 1791 Aktiv.: 8.03
|
Objavljeno: Ned Jul 30, 2023 3:40 pm Naslov sporočila: |
|
|
SimonS je napisal/a: |
Je pa zanimovo, da ima vsak svoj pristop |
Pozabljate, da gre za umetno inteligenco, kar pomeni, da bi bilo zelo nenavadno, če bi bila oba odgovora enaka. Še posebej, ker gre za dva ločena sistema.
Niti na ponovljeno popolnoma enako vprašanje (lahko v drugi seji) praviloma ne da enakega odgovora. |
|
Nazaj na vrh |
|
|
mosqito Član
Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3246 Aktiv.: 33.09
|
|
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: 79 dni
Powered by phpBB © 2001, 2005 phpBB Group
|