.. 328PB .. schon mit dem Studio 7 geproggt. .. Man muss aber in der IDE den richtigen Controller bereits auswählen und dem auch sagen, das es sich um ein C executable Projekt handelt .. Auch die Library delay.h ist zu includieren .. Vorher muss aber die F_CPU defined werden ..
Ich war ja sicher, dass ich das so gemacht hatte - aber was heißt das schon. Also alles nochmal - genau nach Kochbuch und mit dieser Quelle:
Code:
/*
* Cm328PB-04.c
*
* Created: 04.06.2019 17:43:36
* Author : bbt
*/
// ============================================================================= =
// ============================================================================= =
#define F_CPU 20000000
#include <avr/io.h>
#include <avr/delay.h>
// ============================================================================= =
// ============================================================================= =
// ### Programm pausieren lassen !! Der Pausenwert ist nur experimentell !!
void wms(uint16_t ms)
{
for(; ms>0; ms--)
{
uint16_t __c = 2000;
__asm__ volatile (
"1: sbiw %0,1" "\n\t"
"brne 1b"
: "=w" (__c)
: "0" (__c) );
}
} //
// ============================================================================= =
// ============================================================================= =
// ============================================================================= =
// ============================================================================= =
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
wms(970); // ###>>> LED(s) schalten Aode -<|- Portpin <<<###
PORTD &= ~(1<<PD1); // rtLED=PD1 aus
wms(30); //
} // Ende von for(i=0; i<1000; i++)
PORTD = ~(1<<PD1); // rtLED/ auf JEDEN Fall aus
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
while (1)
{
}
} // Ende
// ============================================================================= =
// ============================================================================= =
Und . . . es geht nicht. Fehlermeldungen:
Code:
Severity Code Description Project File Line
Error for each function it appears in.) Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 43
Error MCU 'atmega328pb' supported for assembler only Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 1
Error 'DDRB' undeclared (first use in this function) Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 43
Error (Each undeclared identifier is reported only once Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 43
Error 'PORTB' undeclared (first use in this function) Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 44
Error 'DDRC' undeclared (first use in this function) Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 46
Error 'PORTC' undeclared (first use in this function) Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 47
Error 'DDRD' undeclared (first use in this function) Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 49
Error 'PORTD' undeclared (first use in this function) Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 50
Error 'PD1' undeclared (first use in this function) Cm328PB-04 D:\D_pro-fils\compu_MC\C7\Cm328PB-04\Cm328PB-04\main.c 55
Mal ein Versuch: im File *.cproj den Button [Cange Device...] klicken, nen mega328P auswählen, F7 drücken, flashen, fertig. Es blinkt - etwa 1x pro Sekunde. Wie beabsichtigt. Sieht aus wie erwartet - nur eben als mega328P :-/
Vermutlich findet der Compiler keinen passenden File zum mega328PB - und ich (ich Blödel) habe das Installationsprogramm von meinem (alten) Atmel Studio 7 (Version: 7.0.1417) gelöscht . . . Leider - weil ich einfach den Neuigkeiten/den Jungs von microchip ziemlich misstrauisch gegenüberstehe. Aber ob das wirklich ein Fehler im System ist oder meine falsche Bedienung wage ich nun überhaupt nicht zu behaupten.
Lesezeichen