Datum: 06.05.2008 14:11
Hi, nachdem ich nun das Problem mit MPLAB gelöst habe, habe ich schon wieder ein anderes Problem. Ich möchte ein Chip-Select Signal erzeugen und dieses zunächst auf eine konstante 1 setzten. In der Simulation funktioniert das alles bestens, nur bei der Echtzeitmessung am PICDEM2 Board von Microchip messe ich mit dem Oszillographen lediglich „einen“ Peak, statt einer konstanten 1. Die Frage ist nun, warum der PIC mein CS nicht dauerhaft auf 1 setzt, sondern wieder zurück auf 0? Hier der aktuelle Code:
#include <p18f4320.h> #include <stdio.h> #define ad_cs LATEbits.LATE0 #pragma code void main (void) { ADCON0=0x00; //Inchip A/D wandler ausgeschalten mit Bit0=0 ADCON1=0x3F; //3 = Verwendung von Referenzspannung //F = Alle Portpins auf Digital I/O, TRISE = 0x02; //Port E Pin 1 = Eingang, rest Ausgang PORTE = 0x00; ad_cs = 1; while (1){ } } |
Datum: 06.05.2008 14:50
Wie Dir bereits bei www.fernando-heitor.de geantwortet wurde, sollte auf PORTE nur lesend zugegriffen werden. Zum Setzen der Portpegel den LATE verwenden. Lass dieses PORTE = 0x00; einfach mal weg. Da Du den A/D abgeschaltet hast, kann ich in der Software auch keine weiteren Fehlerquellen ausmachen. Wenn es dann immer noch nicht läuft ist Deine Hardware womöglich buggy.
Datum: 06.05.2008 14:53
Oh und nochwas: Womöglich optimiert der Compiler die leere while-Schleife weg, somit würde der Controller direkt nach dem Setzen von PIN_E0 in den Sleepmodus gehen. Dies könnte ebenfalls den kurzen "Peak" erklären. Schau Dir mal das Assemblerlisting an!
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel