Absoluter Anfänger (ADC STK500)

Gast #3050257
Lesenswert?
• ▲
▼
Hallo zusammen,
ich heiße Daniel und bin noch ein totaler Anfänger auf dem Gebiet der 
Mikrocontroller-Programmierung und würde gerne einen IR-Abstandssensor 
der Fa. Sharp (GP2-1080K) über ein "STK500" Board mit "ATMega16" AVR 
digitalisieren und abfragen. Hierzu habe ich schon einige tutorials 
gelesen und auch schon einen kleinen Teil des Quellcodes geschrieben. 
Ich habe nur Sekunde das Problem, dass ich nicht weiss, wie die 
ermittelten werte über RS232 ausgegeben werden. Könnt Ihr mir bitte 
Helfen, hier einen Ansatz zu finden oder bei Bedarf einige von mir 
gemachten Fehler zu identifizieren?

Hier mal mein bisheriges Code:
1
#define F_CPU 16000000UL
2
#define BAUDRATE 9600UL
3
#include <avr/io.h>
4
#include <avr/interrupt.h>
5

6
ISR(ADC_vect)
7

8
{
9
  PORTC = ADCH;
10
}  
11

12
int main(void)
13
{
14
  DDRC = 0b11111111; 
15
  
16
  //ADC-Konfiguration 
17
  ADMUX |= (1<<REFS0) | (1<<REFS1) | (1<<ADLAR);
18
  ADCSRA |= (1<<ADEN) | (1<<ADSC) | (1<<ADATE) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1);
19
  sei();
20
  
21
    while(1)
22
    {
23
    }
24
}
Momentan werden die Daten auf PORTC ausgegeben, möchte diese aber gern 
an die RS232 Schnittstelle übergeben und über Putty auslesen.

Vielen Dank schon mal im voraus!

Gruß, Daniel
Gast #3052748
Lesenswert?
• ▲
▼
Daniel schrieb:
> ich heiße Daniel und bin noch ein totaler Anfänger auf dem Gebiet der
> Mikrocontroller-Programmierung und würde gerne ...

Möglicherweise sind deine Ambitionen für einen Anfänger (noch) zu 
anspruchsvoll.

Nutze deine Motivation für einen Einstieg, aber übernehme dich dabei 
nicht.

Es macht schon Sinn für einen Anfänger mit der Standard-Übung eines 
Anfänger-Tutoriums anzufangen und sich langsam anderen Themen zu nähern. 
Bevor du den UART angehst musst du vorher allerhand anderes verstanden 
haben.
Gast #3054505
Lesenswert?
• ▲
▼
Guten Abend zusammen,

so ich habe mich jetzt mal durch einige Tutorials durchgelesen und mir 
jede Menge Codes angeschaut. Ich habe mich jetzt erstmal nur auf das 
Senden über der RS232 Schnittstelle beschränkt. Nur jetzt bin ich total 
verwirrt?! Das Senden einzelner Zahlen funktioniert soweit bzw. ein x 
dauerhaft auf der Rs232 auszugeben. Über Putty sieht soweit alles gut 
aus. Nur ändere ich den Buchstaben in z.B. 'l', dann steht im Putty nur 
noch Blödsin, wie kann das sein?

Hier mal der Code, der ja eigentlich stimmen sollte:

#include <avr/io.h>

#define F_CPU 4000000UL
#define BAUDRATE 9600UL
#define UBBR F_CPU/16/BAUDRATE-1



void usart_init(void){
  UBRRH = UBBR >> 8;   //Baudrate einstellen
  UBRRL = UBBR & 0xff; //Baudrate einstellen

  UCSRB = (1<<TXEN); //Transmitter (Daten schicken) aktivieren
  UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //8Bit länge und 1 Stoppbit; 
Asynchron
}
void usart_send(void){
  while (!(UCSRA & (1<<UDRE)));  //warten bis Senden moeglich (UDRE)
  UDR = 'l';   //'x'
}


int main(void){

  DDRD = 0xff;


  usart_init();

  while(1){
    usart_send();


  }
}




Gruß, Daniel

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.