Audio swoja droga ale w dzisiejszych czasach bez procesorow ani rusz. Wiekszosc watkow w elektronice na naszym forum to jak cos naprawic, poprawic, ulepszyc ew zmontowac. Nie ma dzialu o procesorach a takie projekty moga sie przydac chociazby wlasnorecznie skonstruowane przydatne przyrzady pomiarowe. Mam kilka pomyslow na przydatne przyrzady do dziedziny audio ale bez oprogramowania ani rusz. A nie bardzo mam czas siedziec i znow zglebiac tajniki programowania wiec moze jest ktos kto chcialby pocwiczyc bascoma czy ''C''.
Ogłoszenie
Collapse
No announcement yet.
czy są na forum jacyś programiści? (bascom, ''C'')
Collapse
X
-
Myslalem, ze moze warto bedzie stworzyc dzial o projektach z mikroprocesorami tak bardziej od strony programowej.
Osobiscie potrzebuje kogos do pomocy w przerobieniu programu w bascomie no i mam pomysly na nowe urzadzenia pomiarowe:
woltomierz, watomierz, decybelomierz, miernik impedancji baterii/zasilaczy, miernik malych impedancji w tym pomiar impedancji wyjsciowej koncowek mocy (Damping Factor) i miernik szumow wzmacniaczy.
Wszystko w kolejnosci od stopnia trudnosci i licze na kogos kto ma czas sie pobawic.
Skomentuj
-
Pomysł dobry. Ostatnio zainteresowałem się mikroprocesorami i zamierzam kupić jakiś prosty programator.
Ale brakuje mi pomysłów. Nie warto robić czegoś co można kupić za niewielkie pieniądze, czyli moim zdaniem robienie woltomierzy odpada.
Lepiej kupić multimetr. Ale inne przyżądy pomiarowe chyba są warte samodzielnego zrobienia.
Skomentuj
-
Witam,
nie jestem zbyt biegły w Bascom-ie ale celem nauki nabyłem taki zestaw startowy:
http://www.and-tech.pl/pl/zestaw-startowy-evb-43
Dlatego jeśli będzie potrzeba przetestowania programu, najlepiej pod Atmega 32, to mogę się ewentualnie ewentualnie tego podjąć. Oczywiście jeśli zdołam uzupełnić zestaw o zewnętrzne elementy niewątpliwie niezbędne do sprawdzenia całości danego projektu.
Pozdrawiam,
Jacek Zieliński
Skomentuj
-
Zamieszczone przez czarekgr Zobacz postazyli moim zdaniem robienie woltomierzy odpada.
Zamieszczone przez irek Zobacz postawoltomierz, watomierz, decybelomierz, miernik impedancji baterii/zasilaczy, miernik malych impedancji w tym pomiar impedancji wyjsciowej koncowek mocy (Damping Factor) i miernik szumow wzmacniaczy.
Wydaje mi się że nie ma sensu budować czegoś co można kupić za parę PLN, a w EdW było mnóstwo kursów więc robienie tutaj kolejnego nie ma moim zdaniem sensu. Zrobienie prostego woltomierza to chwila.
Jak już robić to coś co będzie miało jakąś praktyczną wartość. Zacząć od woltomierza a resztę robić w postaci przystawek.
---------- Post dodany o 16:23 ---------- Poprzedni post o 16:14 ----------
http://www.tme.eu/dok/04_uklady_scalone/ltc2410.pdf
Skomentuj
-
w zależności od modelu atmegi, załóżmy w ósemce (najlepszej do prób) wbudowane jest kilka przetworników 8 bit i kilka 10bitowych. Tak naprawdę w tych 10 bitach jest 9 bitów "używalnych", najmłodszy to szum. Jakby tak pobierać po wiele próbek, uśredniać i obcinać ostatni bit to będzie dość precyzyjnie działało. Programator, którego używałem składał się z kilku rezystorów dołączanych do portu LPT. Działało to niezawodnie, chociaż powinno się zastosować transoptory. Bascom AVR (atmega jest procem AVR) posiada dobry, wbudowany soft do programowania przez LPT.
Samo programowanie w bascomie jest dość proste, tylko przy rozbudowanych programach takich po 4-6kB zaczyna się wszystko sypać. Z tego co pamiętam przekazywanie arumentow do funkcji jest dość prymitywnie zrobione (chyba tylko przez wartość). Wbudowana jest za to obsługa I2C, enkoderów, klawiatury PS2, wyświetlaczy LCD itp...
C++ jest znacznie szybszy, nie posiada dodatkowego balastu, wszystko działa tak jak programista chce - nie ma żadnych wbudowanych "sterowników" wszystko trzeba sobie napisać, ale za to niema problemów z zamulaniem mikrokontrolera. Mi nie udało się nigdy go rozgryźć....
Jest jeszcze jeden fajny soft. Visual basic! Składnia języka ta sama co bascom, a programy pisze się na windowsa. To już wygląda jak prawdziwy program z okienkami windowsa, przyciskami suwakami, komunikatami itd... Po zastosowaniu odpowiedniej biblioteki i odblokowaniu mamy dostęp do portu LPT czyli 8 bitów wej/wyj plus parę dodatkowych bitów. Pod przetwornik idealne!
Skomentuj
-
Zamieszczone przez tom1eczek Zobacz postawbudowane jest kilka przetworników 8 bit i kilka 10bitowych.
Zamieszczone przez tom1eczek Zobacz postaC++ jest znacznie szybszy, nie posiada dodatkowego balastu, wszystko działa tak jak programista chce - nie ma żadnych wbudowanych "sterowników" wszystko trzeba sobie napisać, ale za to niema problemów z zamulaniem mikrokontrolera. Mi nie udało się nigdy go rozgryźć....Asustor AS-5002T z MPD + konwerter USB .3lite + DAC PCM1704 by olog + autorskie PRE z PVC + Monobloki Ravlus Amplifilo + kolumny Tatami Audio Hudba
Skomentuj
-
faktycznie multipleksowane, tylko w bascomie dostęp jest do nich jakby, bezpośredni. Nie prowadziłem dokładnych pomiarów ile tak naprawdę szumu jest, ale wystarczająco, bo kiedyś zrobiłem woltomierz 0...18 z jedną cyfrą po przecinku, a wskazania się nie wahały mimo, że żadnego uśredniania nie było (bo wtedy nie wiedziałem nawet co to znaczy) tylko ten ostatni bit z 10 był obcięty.
A wogule - pewnie nie pierwszy wpadłem na ten pomysł pomiaru mocy wzmacniaczy (mój oscyloskop jest stary i dużo oszukuje, woltomierz DC napewno mniej). Jakby do wyjścia podłączyć mostek gretza np. na 1N4148, nieduży kondensator i obciążyć jakimś dość dużym rezystorem, żeby czas opadania był długi i mierzyć napięcie stałe na tym układzie.... W atmedze zawrzeć prosty wzór(((Uzyskane napięcie +1,4V)/2,83)^2)/Robc i wyświetlić... hmm? przy przetworniku rzeczywiste 9 bit i przy podzielniku 128Vp-p = 512 da
127,50V (adc=510 o jeden przed max) da 253,70W@8R
127,75V (adc=511 czyli max z 9 bit) 254,5W@8R
taki zakres i dokładność jest chyba zadowalająca, a początek zakresu pomiaru od 1,4V czyli 30mW raczej nie przeszkadza... Jakby ADC puścić na wew. źródło odniesienia =2,56V to trzeba by tylko dać dzielnik rezystorowy 1:50... Działało by to?Last edited by tom1eczek; 17.12.2011, 19:18.
Skomentuj
-
Zamieszczone przez tom1eczek Zobacz postataki zakres i dokładność jest chyba zadowalająca, a początek zakresu pomiaru od 1,4V czyli 30mW raczej nie przeszkadza... Jakby ADC puścić na wew. źródło odniesienia =2,56V to trzeba by tylko dać dzielnik rezystorowy 1:50... Działało by to?
Skomentuj
-
Interesująca propozycja szczególnie, ze irek jest bardzo dobrym elektronikiem analogowym co przykładowo chociażby dla mnie byłoby świetną okazją do podłapania czegoś od niego.
Oczywiście jeśli irek by zaakceptował coś takiego (może by go szlak nie trafił gdyby wyszło na to, że nie znam czegoś prostego z elektroniki analogowej)I w takim wypadku jestem w stanie programować AVR'y w C.
Skomentuj
-
Ja juz sie wszystkim zajme, nie musisz nic o analogowce wiedziec, chodzi tylko o napisanie programu. Nawet narysuje jak ma on dzialac a czy sie to da tak zrobic i czy bedziesz umial to sie okaze. Dlatego wszystko krok po kroku i bedziemy sprawdzali na bierzaco czy wszystko dziala jak nalezy. Na poczatek mam plytke z atmega8 i trzema wyswietlaczami multipleksowanymi siedmiosegmentowymi LED. Na poczatek chodzi o pomiar stalego napiecia i zbadanie mozliwosci przetwornika. Jest tez wejscie do czestosciomierza i to nastepny krok. A dalej probkowanie napiecia wejsciowego w scisle okreslonym czasie itd.
Skomentuj
-
[code]#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
unsigned char lcd_digits[10] __attribute__((progmem)) =
{0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
unsigned char key;
unsigned char data[4]={2,0,0,8};
static unsigned char num=0;
static unsigned char pos=0;
static unsigned char w=0;
ISR(TIMER0_COMP_vect)
{
PORTB=(PORTB&0xf0)|1<<num;
PORTA=pgm_read_byte(lcd_digits+data[num]);
if(num==pos)
{
if(w<50) PORTB=(PORTB&0xf0)|1<<num;
if(w>50) PORTB=(PORTB&0xf0)|0<<num;
}
if(w==100)
w=0;
else
w++;
if(num==3)
num=0;
else
num++;
}
void keyboard(void)
{
char k;
static unsigned char p;
k=(PINB>>4)|0xf0;
if(k==0xff)
{
p=0;
return;
}
if(p==1)
return;
_delay_ms(10);
if(k!=((PINB>>4)|0xf0))
return;
p=1;
key=~k;
}
void menu(void)
{
switch(key)
{
case 1:
if(pos>0)
pos--;
break;
case 2:
if(pos<3)
pos++;
break;
case 4:
if(data[pos]<9)
data[pos]++;
break;
case 8:
if(data[pos]>0)
data[pos]--;
break;
}
key=0;
}
int main(void)
{
DDRA=0xff;
DDRB=0x0f;
PORTB|=0xf0;
TCCR0=0x0c;
OCR0=0x40;
TIMSK|=1<<OCIE0;
SREG|=1<<SREG_I;
while(1)
{
keyboard();
menu();
}
return 0;
}[/code]
prosty programik, zrobiony na jakies tam zajecia, do wyswietlania wartosci przetwornika adc na 4 multipleksowanych wyswietlaczach 7. segmentowych, wykozystujacy przerwania, z prosta edycja 4 przyciskami - na atmega16
wystarczy przeskalowac i bedzie dzialac jako woltomierz, moze Ci sie przyda Irku jako przyklad
Skomentuj
Skomentuj