hi,
ich habe 2 Probleme mit einem mega8.
1. Ich verwende 3 PWMs:
1 | TCCR1A |= (1 << CS01);
|
2 | TCCR1A |= (1<<WGM10);
|
3 | TCCR1A |= (1<<COM1A1) | (1<<COM1B1);
|
4 | TCCR1B |= (1 << CS11);
|
5 | TCCR2 |= (1 << WGM20) | (1 << COM21);
|
6 | TCCR2 |= (1 << CS21) |(1 << CS20);
|
OC2 funktioniert einwandfrei, die OC1A/B sind aber erst bei 100% wenn
ich 1023 in die Register schreibe, obwohl das Ganze doch 8 bit sein
sollte?. Habe ich da was uebersehen?
2. Betrifft das erste nur etwas:
Die OCs steuern LEDs, ich wuerde dazu gerne Farb- und Helligkeitswerte
kombinieren, und zwar getrennt.
Dazu folgendes Codeschnipsel, ergibt jetzt zwar wenig Sinn weil ich es
zum debuggen schon ziemlich verwurstet habe, aber das
Problem konnte ich, egal wie weit ich das betrieben habe, nicht
beseitigen.
1 | if(mode_nmb > 4) {
|
2 | uint8_t red = 0;
|
3 | red = (uint8_t)((uint16_t)value_current[0]*brightness[mode_nmb])/100;
|
4 | OCRED = red;
|
Erklaerung: value_current[] enthaelt den jeweiligen Farbwert, der mit
einem zugehoerigen Helligkeitswert aus dem brightness[] (0-100)
kombiniert werden soll.
Sobald ich jetzt in diesen Fall wandere, passieren die seltsamsten
Dinge. Andere Variablen werden ueberschrieben, der Controler haengt sich
auf, etc.
Hoffe, ihr koennt mir helfen, vielen Dank schonmal.