stel ik gebruik de A/D converter op uC, deze geeft dan binaire waarden af. Wat ik graag zou willen is dat hij deze waarden vergelijkt met de waarden uit een tabel en deze PWM uitzendt, hoe kan ik dit doen?? heeft iemand misschien stukje code ofzo?
als dit niet duidelijk is zal ik vanavond het wel ff verduidelijken , heb nu ff weinig tijd
mvg
RES
RES
Welke uC ?
Ja klopt de ADC geeft waardes af. Hoe nauwkeurig wil je die PWM hebben ik neem aan 8bits resolutie ? 10bit is ook mogelijk eventueel, iets lastiger.
Dan de waardes van de ADC laten vergelijken met de tabelwaarden, dan uit die getallen de PWM weer genereren. Is te doen denk ik.
[Bericht gewijzigd door RES op ]
RES
RES
AT90S8535 geldt: Availability: EOL issued, oftwel als op basis van deze AVR een produkt wilt maken raad ik het je af. (einde produktielijn komt eraan)
kies maar,
heb nu atmega16 liggen
atmega 32 en 64 zijn onderweg net als PIC16F84A, PIC18F8525, PIC18F6621, PIC16C774, PIC16F676 dus keuze zat.
weet het alleen nog niet zo goed te realiseren.
mvg
zou dit kunnen met bijv.
----------------------------------------------------
void main(void)
while(1) {
ADCON &= 0xE0 // selecteer een ad kanaal//
DAPR = 0x00 // start een adconversie betref. kanaal//
while (BSY) { } // wacht tot adconversie klaar is//
Switch (ADDAT >> 5 ) // gebruik enkel 3 msb's//
case:0
P4 = 0xFE; break;
case:1
P4 = 0xFC; break;
case:2
P4 = 0xF8; break;
case:3
P4 = 0xFO; break;
case:4
P4 = 0xEO; break;
case:5
P4 = 0xCO; break;
case:6
P4 = 0x80; break;
case:7
P4 = 0x00; break;
}
}
}
----------------------------------
alleen dat dan:
- Switch (ADDAT >> 5 ) veranderd is zodat de adconversie 8bits is dus iets van Switch (ADDAT >> 0) ofzo moet ik nog ff uitzoeken
- de waarde van P4 voor vier kanalen (outputs geldt)!! hoe doe ik dit? en hoe verbind ik deze met de "PWM getallen" ??
- en dat realtime wordt gedaan, dan bedoel ik dat er geen seconde tussen begin adconversie en pwm signaal zit.
- en hier een eeuwige loop van maken, ma das niet zo moeilijk
- dit allemaal laten geldt voor drie a/dconverters !! iemand idee??
- natuurlijk van case 0 t/m case 255 ipv tot case7
zal proberen er zelf ook al beetje uit te komen maar hulp is meer dan welkom, ben niet zo'n held erin 
RES
RES
alleen dat dan:
- Switch (ADDAT >> 5 ) veranderd is zodat de adconversie 8bits is dus iets van Switch (ADDAT >> 0) ofzo moet ik nog ff uitzoeken
alleen upper byte pakken 8bits (als het een 10bits ADC is)
- de waarde van P4 voor vier kanalen (outputs geldt)!! hoe doe ik dit? en hoe verbind ik deze met de "PWM getallen" ??
4 stuks ? hm... aha, de PWM moet telkens aanpassen op welk kanaal je pakt, dus per inkomende byte van de ADC laten vergelijke met tabel en dan meteen PWM genereren, dan gaat het per byte.
- en dat realtime wordt gedaan, dan bedoel ik dat er geen seconde tussen begin adconversie en pwm signaal zit.
ADC duurt bij AVR ongeveer zeg 200 usec, een flashtabel uitlezen enkele nsec en (eeprom tabel iets langer dacht ik?), dan PWM, dat is wel realtime, althans bij een AVR,ik weet niet welke PIC de snelste is.
- en hier een eeuwige loop van maken, ma das niet zo moeilijk
lus.
- dit allemaal laten geldt voor drie a/dconverters !! iemand idee??
Als eerste de PWM routine, daarin alle ADC's en uitlezen en converteren tabelwaardes.
- natuurlijk van case 0 t/m case 255 ipv tot case7
8bits resolutie.
zal proberen er zelf ook al beetje uit te komen maar hulp is meer dan welkom, ben niet zo'n held erin 
Ja best een gedoe klopt 
PS. vergeet niet dat 8bit PWM 256 keer aftellen is, waarschijnlijk handiger om de interne PWM functie te gebruiken (heb ik nog niet toegepast)
Hej Res
hartstikke bedankt voor de hulp!!
schiet tenminste beetje op zo, ik zal er morgen nog eens wat dingetjes proberen te veranderen en uitzoeken. want voel me niet echt lekker momenteel.
verdere reacties zijn altijd welkom
mvg lars
RES
RES
Simpelste is de interne PWM te gebruiken van een microcontroller denk ik voor jouw. Op zich is PWM niet echt moeilijk, niets meer dan een puls-pauze verhouding die variabel is bij een bepaalde frekwentie. Het zegt het al Pulse Width, pulsbreedte (PWM = PBM) 8bit PWM zelf genereren kost een hoop tijd, heb je snelle microcontroller voor nodig als je hoge frekwenties moet kunnen halen. AVR kan tot max. 150 kHz PWM zo ver ik weet.
T = Puls + Pauze
f = 1/T
duty-cycle is verhouding puls/pauze, PPR pulse pause ratio.
Meer is het niet.
[Bericht gewijzigd door RES op ]