Servus beieinander,
Also ich versuche gerade mich in die Programmierung von uCs mittels C++
reinzuarbeiten. Dazu habe ich unter anderem die demo.h gefunden. Aber
hier habe ich noch einige sehr viele Grundlegende fragen:
1 | #include <inttypes.h>
|
2 | #include <avr/io.h>
|
3 | #include <avr/interrupt.h>
|
4 | #include <avr/sleep.h>
|
5 |
|
6 | #include "iocompat.h"
|
7 |
|
8 | enum { UP, DOWN };
|
9 |
|
10 | ISR (TIMER1_OVF_vect)
|
1.Frage: was ist ISR für eine lustige Funktion?
Und ist TIMER1_OVF_vect nicht irgendwie ein Interrupt?
1 | {
|
2 | static uint16_t pwm;
|
3 | static uint8_t direction;
|
4 |
|
5 | switch (direction)
|
6 | {
|
7 | case UP:
|
8 | if (++pwm == TIMER1_TOP)
|
9 | direction = DOWN;
|
10 | break;
|
11 |
|
12 | case DOWN:
|
13 | if (--pwm == 0)
|
14 | direction = UP;
|
15 | break;
|
16 | }
|
17 |
|
18 | OCR = pwm;
|
19 | }
|
20 |
|
21 | void
|
22 | ioinit (void)
|
23 | {
|
24 | /* Timer 1 is 10-bit PWM (8-bit PWM on some ATtinys). */
|
25 | TCCR1A = TIMER1_PWM_INIT;
|
2.Frage: TCCR1A ist was? und mit was wirds gleichgesetzt?
1 | /*
|
2 | * Start timer 1.
|
3 | *
|
4 | * NB: TCCR1A and TCCR1B could actually be the same register, so
|
5 | * take care to not clobber it.
|
6 | */
|
7 | TCCR1B |= TIMER1_CLOCKSOURCE;
|
8 | /*
|
9 | * Run any device-dependent timer 1 setup hook if present.
|
10 | */
|
11 | #if defined(TIMER1_SETUP_HOOK)
|
12 | TIMER1_SETUP_HOOK();
|
13 | #endif
|
14 |
|
15 | /* Set PWM value to 0. */
|
16 | OCR = 0;
|
17 |
|
18 | /* Enable OC1 as output. */
|
19 | DDROC = _BV (OC1);
|
20 |
|
21 | /* Enable timer 1 overflow interrupt. */
|
22 | TIMSK = _BV (TOIE1);
|
23 | sei ();
|
24 | }
|
25 |
|
26 | int
|
27 | main (void)
|
3.Frage: warum kommt hier ein "int main (void)" oben aber ein "void
ioinit (void)"? also warum int und void?
1 | {
|
2 |
|
3 | ioinit ();
|
4 |
|
5 | /* loop forever, the interrupts are doing the rest */
|
6 |
|
7 | for (;;)
|
8 | sleep_mode();
|
9 |
|
10 | return (0);
|
11 | }
|
Dazwischen sind auch noch einige Fragen aber ich hoffe ich komme
schonmal wieder weiter wenn ich davon irgendwas lerne.
Deshalb schonmal Danke für hilfreiche Antworten.