Liste der Anhänge anzeigen (Anzahl: 1)
Da ich vor kurzer Zeit auch noch ziemlicher Anfänger war was Microcontroller betrifft finde ich diesen Thread sehr gut. Ich will einfach mal nen Stück Quelltext anhängen. Das ist sozusagen eine kleine
ADconverting Bibliothek die nur aus #define´s besteht.
Gruß Muraad
Code:
#include <io.h>
#define ADCinit ADCSRA|=_BV(ADEN) // Teilt dem Board mit das der jeweilige Port für ADC verwendet wird
#define ADCdisable ADCSRA &=~_BV(ADEN) // machs das vorherige wieder rückgänig
#define ADCstart ADCSRA|=_BV(ADSC) // startet eine konvertierung auf dem gewünschten Kannal/Pin
#define ADCfree ADCSRA|=_BV(ADATE) // schaltet den freilaufenden Modus ein
#define ADCvintern ADMUX=_BV(REFS1) |_BV(REFS0) // interne Spannungsversorgung
#define ADCprescaler_2 ADCSRA |=_BV(ADPS0) // gewünschter Teilungsfaktor/Prescaler
#define ADCprescaler_4 ADCSRA|=_BV(ADPS1)
#define ADCprescaler_8 ADCSRA=_BV(ADPS1) | _BV(ADPS0)
#define ADCprescaler_16 ADCSRA|=_BV(ADPS2)
#define ADCprescaler_32 ADCSRA=_BV(ADPS2) | _BV(ADPS0)
#define ADCprescaler_64 ADCSRA=_BV(ADPS2) | _BV(ADPS1)
#define ADCprescaler_128 ADCSRA=_BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0)
#define ADCchannel_1 //gewünschter Kannal z.B bei ATmega32 PINA0 - PINA7
#define ADCchannel_2 ADMUX|=_BV(MUX0) // bei nicht freilaufen muss ADCchannel_x vor
#define ADCchannel_3 ADMUX|=_BV(MUX1) // ADCstart kommen dann kann man mit getadc() der
#define ADCchannel_4 ADMUX= _BV(MUX1) | _BV(MUX0) // Adcwert des gewählten Kannals auslesen
#define ADCchannel_5 ADMUX|=_BV(MUX2)
#define ADCchannel_6 ADMUX= _BV(MUX2) | _BV(MUX0)
#define ADCchannel_7 ADMUX= _BV(MUX2) | _BV(MUX1)
#define ADCchannel_8 ADMUX= _BV(MUX2) | _BV(MUX1) | _BV(MUX0)
inline unsigned int getadc(void)
{
while (ADCSRA & _BV(ADSC)) {}
return ADC;
}
Liste der Anhänge anzeigen (Anzahl: 1)
Hab jetzt in meiner kleinen Bibliothek den ADconverting Teil bisschen überarbeitet und einen Teil zur PWM Ausgabe mit Timer2(16Bit Timer) geschrieben. Ich habe das ganze jetzt in ein Rar Archiv gepackt und zwei Beispielprogramme hinzugefügt. Ach meine Bibliothek bezieht sich auf den ATmega32, um ihn für andere Atmels umzuschreiben muss man theoretisch aber höchsten ein paar Registernamen oder Bitname ändern.
Gruß Muraad
Liste der Anhänge anzeigen (Anzahl: 1)
Ja es hat etwas gedauert...
Ich hab ein kleines C Programm fuer das rn-control 1.4 geschrieben welches
2 Leds mit den Tastern T1 und T2 ein und ausschaltet. Desweiteren gebe ich den Wert des ADC Port 7 auf die serielle Schnittstelle aus.
In der naechsten Zeit will ich das Programm noch mit einer Funktion erweitern
wo eine zusätzliche LED blinkt, die über die Timer Funktion gesteuert wird.
Das Programm läuft bei mir mit den default Einstellungen des Boards, dem mega32 und 16Mhz.
Bis denne