ATMEGA128 PB5 und PB6!!!

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 25 11 2024  21:22:49      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
ATMEGA128 PB5 und PB6!!!

    







BID = 215976

ganse_lk009

Gerade angekommen


Beiträge: 12
Wohnort: Berlin
 

  



Hallo,

ich habe ein 40 Khz PWM Signal generiert und beim Debuggen mit AVR Studio schien alles in Ordnung. Wenn 8 Pulse gesendet werden hört mein Program auf Impulse zu senden, vorrausgesett PD4 würde gedrückt. Wenn ich das Program herunterlade sendet er beim Drücken von PD4 die ganze Zeit, also nicht nur 8 Pulse. Woran könnte das liegen?

Oder anders formuliert.
Ist es richtig, dass wenn ich die Interrupts deactiviere mit cli(), die PWM Signale PB5 und PB6 nicht erzeugt werden?

Als Drittes, kann man die erzeugten PB5 und PB6 Signale beim Simulieren in AVR studio sehen. Beim Simulieren bleiben sie LOW obwohl sie erzeugt werden(Das habe ich festgestellt nach Herunterladen des Programs auf Hardware).


#define MAX_PUL 8

SIGNAL (SIG_OVERFLOW1)
{
if (++pulse>MAX_PUL){
complete=1;
}
}

int main (void) {

//40 Khz Signal generieren
.....
for (;;) {
// Interupts do all
if ((PIND & (1<<PD4))) { //PD4 gedrückt
if (init) {
send=0;
complete=0;
init=0; }
}

if (!(send)) {

if (!(complete)) sei(); //Enable Int and Send Puls
else if (complete) {
TCNT1=0;
cli();
pulse=0;

}
}
}
return 0;
}

Grüsse


BID = 216067

photonic

Schreibmaschine



Beiträge: 1301
Wohnort: Zürich, Schweiz

 

  


In dieser Betriebsart heissen die Outputpins nicht PBx sondern OCxy, das macht es etwas einfacher zu verstehen von welchem Timer sie stammen, etc., ohne dass man das Datenblatt nehmen muss. Pxy heissen die Dinger nur wenn an sie als General I/O nimmt.

Abschalten der Interrupts hat keinen Einfluss auf die Erzeugung von PWM-Signalen. Das entsprechende Register löschen das das Verhalten des Oututpins definiert hilft aber. TCNT1 auf 0 setzen bringt in diesem Fall auch wenig, da der Timer munter weiterläuft und du trotzdem keinen definierten Startwert hast für die nächste Pulssequenz. Wichtig ist dass du den Beginn der Sequenz mit einem overflow Interrupt triggerst um da timing sauber zu erhalten. So sollte es dann klappen.

Für die Tastendruck-Abfrage wäre eine einfache Entprellung nicht schlecht, sowas tun Taster immer. Um sagen zu können warum es weitersendet solange du den Finger draufhältst kann man so nicht sagen, der Teil des Sourcecodes der init auf 1 setzt ist nicht da...


P.S. Könntest du nicht die Ausrufezeichen im Subject weglassen, sieht irgendwie unprofessionell aus. Es wäre auch übersichtlicher, Fragen die offenbar ein und dasselbe Projekt betreffen nicht in vielen einzelnen Topics zu verteilen sondern in einen zu nehmen.

[ Diese Nachricht wurde geändert von: photonic am  6 Jul 2005 17:24 ]

BID = 217242

ganse_lk009

Gerade angekommen


Beiträge: 12
Wohnort: Berlin


Hi,

ich habe immer noch eine Frage. Da ich micht immer die .hex Datei downloaden will um mein PWM Signal auf PB5 und PB6 anzuschauen, wie kann ich OC1A und OC1B in AVR Studio sehen, beim Simulieren?

Danke

BID = 217348

Jornbyte

Moderator



Beiträge: 7178


Auf der rechten Seite I/O klicken, Timer öffnen.




_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 218079

ganse_lk009

Gerade angekommen


Beiträge: 12
Wohnort: Berlin


Hallo,

Danke aber ich wollte eigentlich nicht die Werte des Output Compare Registers OCR1A und OCR1B sehen, die habe ich auf 1/2 ICR also 100 gesetzt damit der LOW Pegel genau so lang anliegt wie der HIGH Pegel.

Ich rede aber von OC1A und OC1B, die sind interne Signale,wo nach Vergleich mit den Output Registern ein 1 oder ein 0 erzeugt werden. Die werden dann auf PB5 und PB6 weiter verdrahtet. Ich würde mich interessiern ob ich diese Signale(OC1A und OC1B) in AVR Studio sehen kann?

Danke

BID = 218163

Jornbyte

Moderator



Beiträge: 7178


Wenn du alles Richtig eingestellt hast, schaltet Portb5 (OC1A) und/oder Portb6 (OC1B), da ja der PinB5/6 nun diese Funktion haben.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 12 Beiträge verfasst
© x sparkkelsputz        Besucher : 182399575   Heute : 6773    Gestern : 7548    Online : 642        25.11.2024    21:22
7 Besucher in den letzten 60 Sekunden        alle 8.57 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0232179164886