Am Anfang war es bei mir auch so, hatte zu wenig Spannung anliegen.
mfG
Tippo
Hallo,
ich habe mit avrdude erfolgreich das fertig kompilierte Testprogramm auf mein RN-Control übertragen, um damit die Funktionen zu testen.
Nach dem Aufspielen des Testprogrammes verhält sich das Board so:
LED 7 und 8 leuchten dauernd, alle anderen LEDs sind aus.
Wenn ich die Resettaste drücke, ertönen 3 Beeps (tief hoch tief),
wenn ich Tasten T1,2,3,5 drücke, kommt nur ein einmaliger, tiefer Beep.
Wenn Taste 4 gedrückt wird, kommen 2 Beeps (tief hoch).
Jedoch sollte mit dem Testprogramm ein Lauflicht ablaufen, wenn man Taste 3 drückt, das ist bei mir jedoch nicht der Fall!
Die DIP Schalter sind alle auf ON und ich habe auf dem Board keine Jumper gesetzt.
Laut avrdude lauten bei mir die Fusebits:
Lowfuse: ef
Highfuse: d9
Wo könnte der Fehler liegen?
Vielen Dank schonmal für eure Hilfe,
Gruß
thdrummer
Am Anfang war es bei mir auch so, hatte zu wenig Spannung anliegen.
mfG
Tippo
Hallo Tippo,
danke für deine schnelle Antwort! Ich hatte bisher nur 7,5 V anliegen, verwende nun ein 12-V-Netzteil, jedoch funktioniert es immer noch nicht - das Verhalten bleibt genau gleich!
GIbt es weitere Ansätze um den Fehler einzugrenzen / zu beheben?
Danke schonmakl,
Gruß
thdrummer
Naja, mehr Probleme hatte ich noch nicht damit.
Programm 1 und 4 gibt etwas über die RS232 schnittstelle aus (1 Batteriespannung, 4 Messwerte an Port A). Evtl. schließt du mal den Rechner an die RS232 Schnitstelle an, startest ein Terminal in Bascom und drückst die 1 am Board.
Für Programm 2 müssten Motoren angeschlossen sein, das könntest du auch noch ausprobieren.
Die Fusebits sind übrigens im RN-Control handbuch erklärt, allerdings für Bascom glaub ich.
mfG
Tippo
Danke für die schnelle Antwort!
Programm 3 müsste ja ein Lauflicht erzeugen, das macht es aber nicht - und normal ist es AFAIK nicht, dass die LEDs 7 und 8 dauerleuchten.
Im RN-Control Handbuch sind die Fusebits nur für Bascom erklärt, leider. Da mein USB-Programmer (USBASP von http://www.fischl.de/usbasp/ ) jedoch nicht von Bascom unterstützt wird, kann ich es mit Bascom nicht testen...
Am Ausgang für die Motoren liegt keine Spannung an - egal welche Taster ich drücke!
Bin langsam echt am verzweifeln, da ich nicht mehr weiterweiss.
Hat evtl. noch jemand anderes einen nützlichen Tip für mich?
Danke Tippo für diene Hilfe!
Gruß
thdrummer
Ich habe nun ein einfache C-Testprogramm auf das Board überspielt, hier der Quelltext:
So funktioniert das Lauflicht, jedoch immer noch nicht mit der fertig kompilierten Version des rncontrol-Testprogramms - woran kann das noch liegen?#include <stdio.h> //c standard i/o lib
#include <stdlib.h> //c standard lib
#include <avr/io.h> //i/o functions definitions of registers and ports
#include <avr/delay.h> //delay function
#include <avr/signal.h> //needed when interrupts via SIGNAL used
#define LEDs PORTC
// Hält Program für ca. k * 100 Millisekunden an
void wait(int k) {
for (int i=0; i<k*10; i++) {
_delay_ms(10);
}
}
int main(void) //function main is ALWAYS called first
{
DDRC = 0xff; // LEDs als Ausgang
int i;
while(1) { // Lauflicht
for (i=0; i<8; i++) {
LEDs |= _BV(i);
wait(10);
LEDs &= LEDs ^ _BV(i);
}
}
return 0;
}
Wenn du RN-Control als Fertigmodul gekauft hast, dann ist der COntroller bereits korrekt programmiert, auch alle Fusebits korrekt gesetzt. Es muss also auf Anhieb alles funktionieren.
Solltest du es selbst aufgebaut haben, dann wäre es am einfachsten wenn DU die Fusebits mit Bascom entsprechend setzt. Da abe rdein ISP dafür wohl nicht geht, hilft ein Blick in unser RN-Wissen RN-Board FAQ:
https://www.roboternetz.de/wissen/in...oard_FAQ-Seite
Dort findest du auch folgendes Bild zu Pony:
Bild hier
Sollte die Tasten nicht korrekt funktionieren, könnte es sein das du einige Jumpe rfalsch gesetzt hast. Achte hier genau auf die Anleitung, wichtig ist zum Beispiel die Referenzspannung. Wenn da salles stimmt dann könnte es sein das deine Widerstände höhere Toleranzen als vorgesehn besitzen, du musst dann die "select case"Anweisung im Quellcode ändern.
Schau dir dazu folgenden Codeausschnitt des Testprogrammes an:
Dort gibt es einige auskommentierte Zeilen die du aktivieren solltest. Bei einer Taste wird dann ein Wert übe rdie RS232 Schnittstelle ausgegeben. Du solltest schaun ob dieser Wert in dem CASE-Bereich liegt. Bei taste 5 müsste der Wert beispielsweise zwischen 90 und 130 liegen. Ist das nicht der Fall, müsstest du die CASE Werte anpassen.Code:'Diese Unterfunktion fragt die Tastatur am analogen Port ab Function Tastenabfrage() As Byte Local Ws As Word Tastenabfrage = 0 Ton = 600 Start Adc Ws = Getadc(7) ' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws If Ws < 500 Then Select Case Ws Case 400 To 450 Tastenabfrage = 1 Ton = 550 Case 330 To 380 Tastenabfrage = 2 Ton = 500 Case 260 To 305 Tastenabfrage = 3 Ton = 450 Case 180 To 220 Tastenabfrage = 4 Ton = 400 Case 90 To 130 Tastenabfrage = 5 Ton = 350 ' Case Else ' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws End Select Sound Portd.7 , 400 , Ton 'BEEP End If
Wenn das alles auch nicht klappt, ja dann musst du den Aufbau deines Boardes nochmal komplett durchgehen, irgendwo muss da noch ein Wurm drin stecken. Genau mit Doku vergleichen. Zum C Programm kann ich nix sagen da ich C nicht nutze.
gruß
Frank
Lesezeichen