Hallo und zunächst einmal vielen Dank für Ihre Hilfe
Ich versuche meine SUN-STAR Mini-Waschmaschine zu reparieren
Ursprünglich wurde ein STC 90C52RC-Mikroprozessor mitgeliefert, der vor
Alterung gestorben ist
Alle anderen Teile und Zubehörteile sind in gutem Zustand und
funktionieren ordnungsgemäß
Ich beabsichtige, es durch ATMEGA162 zu ersetzen, das
Pin-zu-Pin-kompatibel ist
Das ursprüngliche Board muss nur ein paar kleinere Änderungen vornehmen
wie man den Kristall und die zugehörigen Kondensatoren wechselt und die
10K-Widerstandsarrays entfernt, die PULL-UP machen
das in der atmega162 sind nicht nötig
Ich brauche nur ein kleines Detail, um es zu erreichen
versuche verschiedene Wege, aber ohne Erfolg
Mir fehlt die STROBO-Funktion im IRS von timer1
Das pwm der LEDs funktioniert genau wie die DIMMER MASTER-Funktion
Ich hoffe Ihre Kommentare oder Vorschläge, wie es geht
Vielen Dank fürs Lesen. Ich habe mich für meine Hilfe interessiert
1 | // *************** ISRs ****************
|
2 | ISR (TIMER1_OVF_vect)
|
3 | { //half step
|
4 |
|
5 |
|
6 | unsigned int DimmMaster;
|
7 | static unsigned char pwm_counter0 = 0;
|
8 | pwm_counter0++;
|
9 | static unsigned char pwm_counter1 = 0;
|
10 | pwm_counter1++;
|
11 | static unsigned char pwm_counter2 = 0;
|
12 | pwm_counter2++;
|
13 |
|
14 | if(pwm_counter0 == 255)
|
15 | {
|
16 | pwm_counter0 = 0;
|
17 | }
|
18 |
|
19 | if(pwm_counter1 == 255)
|
20 | {
|
21 | pwm_counter1 = 0;
|
22 | }
|
23 |
|
24 | if(pwm_counter2 == 255)
|
25 | {
|
26 | pwm_counter2 = 0;
|
27 |
|
28 | }
|
29 |
|
30 |
|
31 | DimmMaster=DmxRxField[4];
|
32 | DimmMaster=DimmMaster*DmxRxField[7];
|
33 |
|
34 | DimmMaster=(DimmMaster>>8);
|
35 | if ((unsigned char)(DimmMaster)>pwm_counter0) //ROJO //RED
|
36 | {
|
37 | PORTB &= ~(1<<PB0); //LED OFF (APAGADO)
|
38 | }else{
|
39 | PORTB |= (1<<PB0); //LED ON (ENCENDIDO)
|
40 | }
|
41 |
|
42 |
|
43 | DimmMaster=DmxRxField[5];
|
44 | DimmMaster=DimmMaster*DmxRxField[7];
|
45 |
|
46 | DimmMaster=(DimmMaster>>8);
|
47 | if ((unsigned char)(DimmMaster)>pwm_counter1) //VERDE //GREEN
|
48 | {
|
49 | PORTB &= ~(1<<PB1); //LED OFF (APAGADO)
|
50 | }else{
|
51 | PORTB |= (1<<PB1); //LED ON (ENCENDIDO)
|
52 | }
|
53 |
|
54 |
|
55 | DimmMaster=DmxRxField[6];
|
56 | DimmMaster=DimmMaster*DmxRxField[7];
|
57 |
|
58 | DimmMaster=(DimmMaster>>8);
|
59 |
|
60 | if ((unsigned char)(DimmMaster)>pwm_counter2) //AZUL //BLUE
|
61 | {
|
62 | PORTB &= ~(1<<PB2); //LED OFF (APAGADO)
|
63 | }else{
|
64 | PORTB |= (1<<PB2); //LED ON (ENCENDIDO)
|
65 | }
|
66 |
|
67 |
|
68 |
|
69 |
|
70 |
|
71 | }
|