Arduino Due - Access to registers for timers, interrupts. etc...

Good morning everybody, I have a subtle problem with this registry access and maybe I can join this topic.
I have written te attached program to test register access to Timers
#include <DueTimer.h>
#include "instance_tc0.h"
#include "TC0def.h"

#define PMC_SCSR 0x400E0608U
#define PMC_PCSR0 0x400E0618U
#define PMC_PCER0 0x400E0610U
#define UL unsigned long
UL pippo = 0, RA_Count, RC_Count, Clock_freq, pulse_duration;

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Clock_freq = 84000000;
RA_Count = 2; //giusto per avere margine da 0
//Set Waveform Mode
// F / 128, Wavemode,Salita,stoopa si RC, alza su RA e termina su RC
REG_TC0_CMR0 = TIMER_CLOCK4|WAVE|WAVSEL_UP|CPCSTOP|ACPA_SET|ACPC_CLEAR;
REG_TC0_RA0 = RA_Count; //set pulse start delay

//set pulse data
pulse_duration = 200;//msec
RC_Count = (UL) 200/1000*Clock_freq/128;

REG_TC0_RC0 = RC_Count; //set count val
//start
REG_TC0_CCR0 = SWTRG;
pippo = PMC_PCSR0;
Serial.print("Status reg = ");Serial.println(pippo,BIN);
pippo = PMC_PCSR0|(1<<27);
PMC_PCER0 = pippo; <--------------------------------------FAILING POINT

Serial.print("Status reg = ");Serial.println(pippo,BIN);
pippo = PMC_PCSR0;
Serial.print("Status reg = ");Serial.println(pippo,BIN);
delay(1000);
}
void loop(){
delay(10);
pippo = REG_TC0_SR0;
Serial.println(pippo,BIN);
}

I also have a file with definitions of registers (part is below)
#define REG_TC0_RA0 ((RwReg)0x40080014U) /< \brief (TC0) Register A (channel = 0) /
#define REG_TC0_RB0 (
(RwReg*)0x40080018U) /
< \brief (TC0) Register B (channel = 0) /
#define REG_TC0_RC0 (
(RwReg*)0x4008001CU) /< \brief (TC0) Register C (channel = 0) /
#define REG_TC0_SR0 (
(RoReg*)0x40080020U) /
< \brief (TC0) Status Register (channel = 0) /
#define REG_TC0_IER0 (
(WoReg*)0x40080024U) /< \brief (TC0) Interrupt Enable Register (channel = 0) /
#define REG_TC0_IDR0 (
(WoReg*)0x40080028U) /
< \brief (TC0) Interrupt Disable Register (channel = 0) /
#define REG_TC0_IMR0 (
(RoReg*)0x4008002CU) /**< \brief (TC0) Interrupt Mask Register (channel = 0) */

I've added similar definitions to the top of my program
All the reads work ok

at compilation time I get this error

sketch_jul16a.ino: In function 'void setup()':
sketch_jul16a.ino:31:11: error: lvalue required as left operand of assignment
lvalue required as left operand of assignment

Write instruction to registers worked well with Counter Registers
why it fails with PMC_PCER0 that is a Write register as well??

Many thanks for any support.
Esperanto