Dein Code hatte noch einen Fehler in der delay.h definition.
Hab nun noch die Studio eigenen Delay Routinen Verwendet - Läuft bei mir Problemlos und Linked ohne Fehler.
Code:
/*
* pb328_test.c
*
* Created: 04.06.2019 20:50:03
* Author : USER
*/
#define F_CPU 20000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
// ============================================================================= =
int main(void)
{ /* Replace with your application code */
uint8_t i; //
// - - - - - - - - - - - - - - -
// Ports+Pins als Ein- (0) od Ausgänge (1) konfigurieren, Pull Ups (1) aktivieren
// A = Ausgang, E = Eingang ohne , EU = Eingang MIT PullUp
//
DDRB = 0b01111111; // siehe aktuell oben
PORTB = 0b10000000; // und Port/Pull Ups (1) aktivieren
// =
DDRC = 0b11111111; // PC0..7
PORTC = 0b00000000; //
//
DDRD = 0b00111111; // -> siehe Schaltplan
PORTD = 0b11000011; // Pull Ups aktivieren, NICHT bei extINT0/~1
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
for(i=0; i<1000; i++) // LED(PD1) blinken lassen bevor Interrupts erlaubt sind,
{ // um ungewollte Resets u.ä. besser erkennen zu können
PORTD |= (1<<PD1); // rtLED=PD1 ein
_delay_ms(970);//970
// ###>>> LED(s) schalten Aode -<|- Portpin <<<###
PORTD &= ~(1<<PD1); // rtLED=PD1 aus
_delay_ms(30); //30
//
} // Ende von for(i=0; i<1000; i++)
PORTD = ~(1<<PD1); // rtLED/ auf JEDEN Fall aus
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
while (1)
{
}
} // Ende
// ============================================================================= =
// ============================================================================= =
Da Du ja anscheinend Interupts verwenden willst hab ich auch gleich die Interrupt.h mit included.
Lesezeichen