Hallo zusammen,
ging in letzter zeit einiges voran.
Habe bei Reichelt bestellt, und die Lieferung schon teilweise verarbeitet.
Soll heißen: Die Platine ist fertig.
Als "Ventil" wird nun ein Servo genutzt, der den Schlauch abklemmt.
Als Schlauch habe ich Silikonschlauch aus eBay, 8/10mm dick.
Jetzt habe ich angefangen zu Programmieren.
Zuerst möchte ich die RS232-Übertragung hin bekommen.
Hier ist das Problem, das vom Controller am PC garnichts ankommt^^
Vorgehen tue ich nach diesem tutorial: http://www.mikrocontroller.net/artic...orial#Der_UART
Mein jetztiger Code:
Code:
#include <avr/io.h>
#include <stdio.h>
#include <stdlib.h>
#include <util/delay.h>
#ifndef F_CPU
#warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 4000000"
#define F_CPU 1000000UL // Systemtakt in Hz - Definition als unsigned long beachten >> Ohne ergeben Fehler in der Berechnung
#endif
#define BAUD 4800UL // Baudrate
// Berechnungen
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // clever runden
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler.
#if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
#error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch!
#endif
int main(void)
{
PORTA = 0xff;
DDRA = 0xff;
for(int i=0;i<5;i++)
{
PORTA = 0x00;
_delay_ms(500);
PORTA = 0xff;
_delay_ms(500);
}
UCSRB |= (1<<TXEN); // UART TX einschalten
UCSRC |= (1<<URSEL)|(3<<UCSZ0); // Asynchron 8N1
UBRRH = UBRR_VAL >> 8;
UBRRL = UBRR_VAL & 0xFF;
while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich */
{
}
PORTA = 0x00;
UDR = 'x';
PORTA = 0xff;
}
Ich habe zwischen drin noch eine LED, damit ich sehe ob er überhaupt an die entsprechende stelle im Code kommt.
Stimmt dieser so überhaupt?
http://www.mikrocontroller.net/artic...e#UART.2FUSART
Hier habe ich noch eine Checkliste...
Zu den Punkten:
1.: Haben zurzeit 1MHz intern. so wie ich das gelesenhabe ist der Controller ja darauf kalibriert.
2.:ist 1MHz überhaupt ok? Ich habe noch 12MHz hier, wären die besser?
3.:In den Fuses des AVR-Studio hab ich niochts gefunden, ich gehe davon aus das er das nicht ist.
4.: -
5.:-
6.: Bereits gemacht.
--
7.:kA
8.:richtig angeschlossen
9.: beides getestet
10.: TeraTerm Pro wie folgt eingestellt: COM1;4800baud;8bit data; Parity:none;1Stopbit;FlowControl:none
11
as funktioniert.
Lesezeichen